
/* 
 * Neditor Content Styles
 * This file defines the appearance of the post content both inside the editor and on the site.
 */
:root {
    
    --ne-c-txt-main: #334155;
    --ne-c-txt-muted: #64748b;
    --ne-c-txt-muted-alt: #94a3b8;
    --ne-c-border: #e2e8f0;
    --ne-c-bg-body: #ffffff;
    --ne-c-bg-hover: #f8fafc;
    --ne-c-radius: 8px;
}
/* Base content area styles */
.ne-content {
    font-size: 14px;
    font-family: 'Malgun Gothic', sans-serif;
    word-break: break-all;
}
.ne-content h1,.ne-content h2,.ne-content h3,.ne-content h4,.ne-content h5,.ne-content h6 {
        font-size: initial;
        font-size: revert;
        font-weight: initial;
        font-weight: revert;
    }
.ne-content p {
        margin: 0;
    }
.ne-content div {
        font-size: 14px;
    }
.ne-content p span {
        font-size: 14px;
    }
.ne-content hr {
        display: block;
    }
.ne-content a {
        color: #2761c4;
    }
.ne-content ul,.ne-content ol {
        margin-left: 40px;
    }
:is(.ne-content ul,.ne-content ol) li {
            margin-bottom: 4px;
            list-style: inherit;
        }
:is(.ne-content ul,.ne-content ol) ul,:is(.ne-content ul,.ne-content ol) ol {
            margin: 8px 0;
        }
/* Specific List Types via Classes (Toolbar control) */
.ne-ul-disc {
    list-style-type: disc;
}
.ne-ul-circle {
    list-style-type: circle;
}
.ne-ul-square {
    list-style-type: square;
}
.ne-image,
.ne-video {
    height: auto;
    border-radius: var(--ne-c-radius);
    display: inline-block;
    margin-right: 20px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.ne-map-image {
    max-width: 100%;
    height: auto;
    border: 1px solid #ddd;
    border-radius: 8px;
    display: inline-block;
}
.ne-meme-image {
    max-width: 100%;
    height: auto;
    display: inline-block;
}
.ne-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 24px 0;
    border-top: 1px solid var(--ne-c-border);
    border-left: 1px solid var(--ne-c-border);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
    table-layout: fixed;
}
.ne-table td,.ne-table th {
        height: auto;
        word-break: break-all;
        border-bottom: 1px solid var(--ne-c-border);
        border-right: 1px solid var(--ne-c-border);
        padding: 12px 14px;
        text-align: left;
        font-size: 14px;
        color: var(--ne-c-txt-muted);
        min-width: 60px;
        vertical-align: top;
    }
:is(.ne-table td,.ne-table th) p,:is(.ne-table td,.ne-table th) div {
            margin: 0 !important;
            padding: 0 !important;
        }
.ne-table th {
        background-color: var(--ne-c-bg-body);
        color: var(--ne-c-txt-muted-alt);
        font-weight: 600;
        text-transform: uppercase;
        font-size: 13px;
        letter-spacing: 0.05em;
    }
.ne-table tr:nth-child(even) {
        background-color: #fdfdfd;
    }
.ne-table tr:hover td {
        background-color: var(--ne-c-bg-hover);
        
    }
/* Base iframe support */
.ne-content iframe {
    max-width: 100%;
    border-radius: var(--ne-c-radius);
}
/* Neditor Specific Font Sizes */
.ne-fs-8 {
    font-size: 8px;
}
.ne-fs-10 {
    font-size: 10px;
}
.ne-fs-12 {
    font-size: 12px;
}
.ne-fs-14 {
    font-size: 14px;
}
.ne-fs-16 {
    font-size: 16px;
}
.ne-fs-18 {
    font-size: 18px;
}
.ne-fs-20 {
    font-size: 20px;
}
.ne-fs-22 {
    font-size: 22px;
}
.ne-fs-24 {
    font-size: 24px;
}
.ne-fs-26 {
    font-size: 26px;
}
.ne-fs-28 {
    font-size: 28px;
}
.ne-fs-36 {
    font-size: 36px;
}
.ne-fs-48 {
    font-size: 48px;
}
.ne-fs-72 {
    font-size: 72px;
}
/* Neditor Specific Font Families */
.ne-ff-myeongjo {
    font-family: "명조", Batang, serif;
}
.ne-ff-malgun {
    font-family: "맑은 고딕", "Malgun Gothic", sans-serif;
}
.ne-ff-dotum {
    font-family: "돋움", Dotum, sans-serif;
}
.ne-ff-gulim {
    font-family: "굴림", Gulim, sans-serif;
}
.ne-ff-batang {
    font-family: "바탕", Batang, serif;
}
.ne-ff-gungsuh {
    font-family: "궁서", Gungsuh, serif;
}
.ne-ff-arial {
    font-family: Arial, Helvetica, sans-serif;
}
.ne-ff-comic {
    font-family: "Comic Sans MS", cursive, sans-serif;
}
.ne-ff-courier {
    font-family: "Courier New", Courier, monospace;
}
.ne-ff-georgia {
    font-family: Georgia, serif;
}
.ne-ff-headlinea {
    font-family: "HeadLineA", "Headline A", serif;
}
.ne-ff-impact {
    font-family: Impact, charcoal, sans-serif;
}
.ne-ff-tahoma {
    font-family: Tahoma, Geneva, sans-serif;
}
.ne-ff-times {
    font-family: "Times New Roman", Times, serif;
}
.ne-virtual-holder {
    display: inline-block;
    vertical-align: baseline;
}
.ne-style-isolated {
    display: inline-block;
    vertical-align: baseline;
}
/* Mobile Content Overrides via Class */
.is-mobile.ne-content {
    font-size: 16px;
    line-height: 1.4;
}
.is-mobile.ne-content div,
.is-mobile.ne-content p span {
    font-size: 16px;
}
/* Mobile Scrap (지름목록) Editor Override Fix */
/* 에디터 기본 태그(ul, li, p, div, span) 스타일이 scrap 마크업을 망가뜨리는 현상 방어 */
/* 1. 텍스트 박스(ul, li) 리스트 스타일 및 여백 강제 초기화 방어 */
.is-mobile.ne-content .shop-ppom-scrap-wrap ul {
    margin-left: 0;
    margin: 0;
    list-style: none;
}
.is-mobile.ne-content .shop-ppom-scrap-wrap li {
    margin-bottom: 0;
    list-style: none;
}
/* 2. 안내 텍스트(p, span) 여백 및 거대 폰트화 방어 */
.is-mobile.ne-content .shop-ppom-scrap-wrap p {
    margin-top: 7px;
}
.is-mobile.ne-content .shop-ppom-scrap-wrap p span {
    font-size: 13px;
}
/* 3. 16px로 강제 뻥튀기되는 div 폰트 방어 및 원상 복구 */
.is-mobile.ne-content .shop-ppom-scrap-wrap div {
    font-size: initial;
}
.is-mobile.ne-content .shop-ppom-scrap-name-star {
    font-size: 12px;
}
.is-mobile.ne-content .shop-ppom-scrap-name-star strong {
    font-size: 14px;
}
.is-mobile.ne-content .shop-ppom-scrap-text-box {
    font-size: 12px;
}
/* Neditor UI Stylesheet */
:root {
    --ne-editor-icons: url("https://cdn3.ppomppu.co.kr/images/editor-icons.png");
    --ne-mo-editor-icons: url("https://cdn3.ppomppu.co.kr/images/mobile-editor-icons-v2.png");
    --ne-expand-size-icon: url("https://cdn3.ppomppu.co.kr/images/expand_size.png");
    --ne-mo-bottom-padding: 0px;
    --bg-body: #f8fafc;
    --bg-surface: #ffffff;
    --txt-main: #1e293b;
    --txt-header: #0f172a;
    --txt-muted: #475569;
    --txt-muted-alt: #64748b;
    --txt-light: #94a3b8;
    --primary-color: #2563eb;
    --primary-hover: #1d4ed8;
    --border-color: #e2e8f0;
    --border-hover: #cbd5e1;
    --bg-hover: #f1f5f9;
    --danger-color: #ef4444;
    --danger-alt: #f43f5e;
    --danger-bg: #fff1f2;
    --danger-border: #fecaca;
    --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --radius-sm: 6px;
    --radius-md: 8px;
    --radius-lg: 12px;
}
.editor-container {
    font-family: var(--font-family);
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    position: relative;
    overflow: clip;
    background-color: var(--bg-surface);
}
.editor-container .ne-content {
        height: 100%;
        min-height: 200px;
        padding: 8px 15px 24px 15px; /* JS 가로 스크롤바 영역(bottom 3px + height 6px) 고려한 여백 */
        scroll-padding-bottom: 30px; /* 엔터 입력 시 브라우저 자동 스크롤이 하단 여백을 유지하도록 설정 */
        outline: none;
        overflow-y: auto;
        overflow-x: auto;
        scrollbar-width: none;


    }
:is(.editor-container .ne-content)::-webkit-scrollbar { display: none; }
.editor-container .ne-content {
        box-sizing: border-box;
        position:relative;


    }
.editor-container .ne-block-toolbar {
        position: absolute;
        z-index: 5;
        display: none;
        pointer-events: none;

        opacity: 0;
    }
.active:is(.editor-container .ne-block-toolbar) { display: block; opacity: 1; pointer-events: auto; }
.editor-container .ne-block-delete-btn {
        background: #ff4d4f;
        color: white;
        border: none;
        border-radius: 8px;
        width: 32px;
        height: 32px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        box-shadow: 0 4px 12px rgba(255, 77, 79, 0.3);
        transition: all 0.2s ease;
    }
:is(.editor-container .ne-block-delete-btn) .ne-svg-icon {
            width: 16px;
            height: 16px;
            transition: transform 0.2s ease;
        }
:is(.editor-container .ne-block-delete-btn) svg.ne-svg-trash {
            fill: white;
        }
:is(.editor-container .ne-block-delete-btn):hover {
            background: #cf1322;
        }
:is(.editor-container .ne-block-delete-btn):hover .ne-svg-icon {
                transform: scale(1.1);
            }
.editor-container textarea.source-area {
        width: 100%;
        height: 100%;
        min-height: 200px;
        padding: 8px 15px;
        margin: 0;
        border: none;
        outline: none;
        background-color: var(--txt-header);
        color: var(--border-color);
        font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
        font-size: 14px;
        line-height: 1.6;
        box-sizing: border-box;
        resize: none;
        overflow-y: auto;
        display: block;
    }
.editor-container .toolbar {
        background-color: var(--bg-surface);
        border: 1px solid #e2e8f0;
        border-bottom: none;
        display: flex;
        flex-direction: column;
        position: relative;
        z-index: 9;
        flex-shrink: 0;
        border-top-right-radius:5px;
        border-top-left-radius:5px;
    }
.editor-container .toolbar-row {
        display: flex;
        flex-wrap: nowrap;
        gap: 4px;
        align-items: center;
        padding: 4px 8px;
        border-bottom: 1px solid var(--border-color);
        overflow: visible;
    }
:is(.editor-container .toolbar-row)::-webkit-scrollbar { display: none; }
:is(.editor-container .toolbar-row):last-child {
            border-bottom: none;
        }
.editor-container .toolbar-group {
        display: flex;
        align-items: center;
        gap: 1px;
        padding: 0 2px;
        flex-shrink: 0;
    }
.editor-container .toolbar-separator {
        width: 1px;
        height: 20px;
        background-color: var(--border-color);
        margin: 0 8px;
        flex-shrink: 0;
    }
.editor-container .file-manager-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
        gap: 16px;
        padding: 10px 0;
        max-height: 400px;
        overflow-y: auto;
    }
.editor-container .file-item {
        position: relative;
        border-radius: var(--radius-lg);
        overflow: hidden;
        background: var(--bg-body);
        border: 1px solid var(--border-color);

        aspect-ratio: 1;
    }
:is(.editor-container .file-item):hover {  box-shadow: 0 4px var(--radius-lg) rgba(0, 0, 0, 0.1); }
.representative:is(.editor-container .file-item) { border: 2px solid var(--primary-color); box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.1); }
.editor-container .file-thumb { width: 100%; height: 100%; background-size: cover; background-position: center; cursor: pointer; }
.editor-container .file-actions {
        position: absolute; bottom: 0; left: 0; right: 0; padding: 8px; background: rgba(255, 255, 255, 0.9);
        display: flex; justify-content: space-between; opacity: 0;
    }
.editor-container .file-item:hover .file-actions { opacity: 1; }
.editor-container .file-action-btn {
        background: none; border: none; cursor: pointer; font-size: 14px; padding: 4px; border-radius: 4px;
    }
.delete:is(.editor-container .file-action-btn) { color: var(--danger-alt); }
.delete:is(.editor-container .file-action-btn):hover { background: var(--danger-bg); }
.star:is(.editor-container .file-action-btn) {
            color: var(--txt-light);
        }
.star:is(.editor-container .file-action-btn):hover {
                background: #fefce8;
            }
.star:is(.editor-container .file-action-btn):hover svg.ne-svg-star {
                    fill: currentColor;
                }
.editor-container .file-item.representative .file-action-btn.star {
        color: #ef4444;
    }
:is(.editor-container .file-item.representative .file-action-btn.star) svg.ne-svg-star {
            fill: currentColor;
        }
.editor-container .representative-badge {
        position: absolute; top: 8px; right: 8px; background: var(--primary-color); color: white; padding: 2px 8px;
        border-radius: 10px; font-size: 10px; font-weight: 600; pointer-events: none; display: none;
    }
.editor-container .file-item.representative .representative-badge { display: block; }
.editor-container .empty-state {
        grid-column: 1 / -1; text-align: center; padding: 40px 0; color: var(--txt-light);
    }
:is(.editor-container .empty-state) i { font-size: 48px; margin-bottom: 16px; display: block; }
.editor-container .toolbar button {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        border: 1px solid transparent;
        border-radius: 4px;
        background: transparent;
        color: var(--txt-muted);
        cursor: pointer;
        flex-shrink: 0;
    }
.has-badge:is(.editor-container .toolbar button)::after {
            content: ''; position: absolute; top: 4px; right: 4px; width: 7px; height: 7px; background-color: #ff4d4f;
            border: 1.5px solid white; border-radius: 50%; z-index: 5;
        }
:is(.editor-container .toolbar button):hover { background-color: var(--bg-hover); color: var(--txt-header); }
:is(.editor-container .toolbar button):active { background-color: var(--border-color); }
:is(.editor-container .toolbar button):disabled { opacity: 0.3; cursor: not-allowed; }
.active:is(.editor-container .toolbar button) {
            background-color: #e0f2fe;
            border-color: #7dd3fc;
            color: var(--primary-color);
        }
.active:is(.editor-container .toolbar button) i::before {
                filter: invert(34%) sepia(85%) saturate(3015%) hue-rotate(212deg) brightness(96%) contrast(95%);
            }
:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before {content:"";background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 30px;height: 25px;background-position-y: -3px;}
.fa-image:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -2px;}
.fa-file-lines:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -57px;}
.fa-youtube:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -111px;}
.fa-location-dot:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -165px;}
.fa-smile:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -219px;}
.fa-minus:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -273px;}
.fa-table:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -327px;}
.fa-link:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -381px;}
.fa-link-slash:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -436px;}
.fa-border-all:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -489px;}
.fa-copy:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -543px;}
.fa-scissors:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -598px;}
.fa-layer-group:is(.editor-container .toolbar .toolbar-row:first-of-type .toolbar-group button i)::before{background-position-x: -652px;}
.fa-up-right-and-down-left-from-center:is(.editor-container .toolbar .toolbar-row:first-of-type .ne-toolbar-extra button i)::before {content:"";background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 25px;height: 25px;background-position: -702px -3px;}
.editor-container .toolbar .toolbar-row:first-child button {
        flex-direction: column;
        width: auto;
        min-width: 48px;
        height: 44px;
        gap: 2px;
        padding: 4px 2px;
    }
:is(.editor-container .toolbar .toolbar-row:first-child button) i { font-size: 16px; }
:is(.editor-container .toolbar .toolbar-row:first-child button) span { font-size: 10px; font-weight: 500; white-space: nowrap; }
.editor-container .toolbar .toolbar-row:not(:first-child) button {
        width: 28px; height: 28px; padding: 0; font-size: 14px;
    }
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) i { font-size: 13px; }
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button):hover { background-color: var(--bg-hover); border-color: var(--border-hover); }
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) i::before{content:"";background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 20px;height: 24px;background-position: -5px -63px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-font::before{background-position-x: -5px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-fill-drip::before{background-position-x: -35px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-bold::before{background-position-x: -66px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-italic::before{background-position-x: -94px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-underline::before{background-position-x: -124px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-strikethrough::before{background-position-x: -155px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-align-left::before{background-position-x: -210px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-align-center::before{background-position-x: -241px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-align-right::before{background-position-x: -273px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-align-justify::before{background-position-x: -305px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-arrows-up-down::before{background-position-y: -65px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-list-ul::before{background-position-y: -65px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-eraser::before{background-position-x: -451px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-code::before{background-position-x: -486px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-rotate-left::before{background-position-x: -522px;}
:is(.editor-container .toolbar .toolbar-row:not(:first-child) button) .fa-rotate-right::before{background-position-x: -549px;}
:is(.editor-container .toolbar .ne-dropdown) i::before{content: '';background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 20px;height: 24px;background-position-y: -63px;}
:is(.editor-container .toolbar .ne-dropdown) .fa-arrows-up-down::before{background-position-x: -360px;}
:is(.editor-container .toolbar .ne-dropdown) .fa-list-ul::before{background-position-x: -395px;}
.editor-container .color-palette { min-width: 200px; padding: 12px; }
.editor-container .color-grid { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; margin-bottom: 10px; }
.editor-container .color-item {
        width: 18px; height: 18px; border-radius: 2px; border: 1px solid rgba(0,0,0,0.1); cursor: pointer;
    }
:is(.editor-container .color-item):hover {  border-color: rgba(0,0,0,0.3); z-index: 1; }
.editor-container .bottom-btns {
        display: flex;
        gap: 6px;
        margin-top: 10px;
        align-items: center;
        width: 100%;
    }
.editor-container .toolbar .ne-dropdown.color-dropdown {
        width: 28px; padding: 0; justify-content: center;
    }
:is(.editor-container .toolbar .ne-dropdown.color-dropdown)::after { display: none; }
:is(.editor-container .toolbar .ne-dropdown.color-dropdown) button { width: 100%; height: 100%; border: none; background: transparent; }
:is(.editor-container .toolbar .ne-dropdown.color-dropdown) .other-color-btn {
            border: 1px solid #dee5ee;
            font-size: 12px;
            height: 20px;
            flex: 1;
            border-radius: 2px;
            color: var(--txt-muted);
            background: var(--bg-body);
            cursor: pointer;
        }
:is(:is(.editor-container .toolbar .ne-dropdown.color-dropdown) .other-color-btn):hover { background: var(--bg-hover); color: var(--primary-color); border-color: var(--border-hover); }
:is(.editor-container .toolbar .ne-dropdown.color-dropdown) .none-color-btn {
            width: 20px;
            height: 20px;
            flex-shrink: 0;
            border-radius: 2px;
            border: 1px solid #a7a7a7;
            cursor: pointer;
            padding: 0;
            background: var(--bg-body);
        }
:is(:is(.editor-container .toolbar .ne-dropdown.color-dropdown) .none-color-btn)::after {
                content: '';
                background: url(https://cdn3.ppomppu.co.kr/images/icon_diagonal_line.png) no-repeat -1px 0 / cover;
                display: block;
                width: 20px;
                height: 20px;
            }
:is(:is(.editor-container .toolbar .ne-dropdown.color-dropdown) .none-color-btn):hover {
                background: var(--bg-hover);
                border-color: var(--danger-border);
            }
.editor-container #foreColorBtn i {
        display: inline-block;
        transition: color 0.15s ease;
    }
:is(.editor-container #foreColorBtn i)::before {
            content: "" !important;
            background: currentColor !important;
            display: inline-block !important;
            width: 20px !important;
            height: 24px !important;
            -webkit-mask-image: var(--ne-editor-icons);
            mask-image: var(--ne-editor-icons);
            -webkit-mask-position: -5px -63px;
            mask-position: -5px -63px;
            -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
        }
.editor-container #hiliteColorBtn i {
        padding: 3px 5px;
        border-radius: 4px;
        transition: background-color 0.15s ease;
    }
.editor-container .toolbar-row:nth-child(2) .toolbar-group:last-child { margin-left: auto; }
.editor-container #formatBlock,.editor-container #fontName,.editor-container #fontSize { display: none; }
.editor-container .ne-dropdown {
        position: relative;
        height: 28px;
        border-radius: 4px;
        background: var(--bg-surface);
        display: flex;
        align-items: center;
        cursor: pointer;
        font-size: 12px;
        padding: 0 8px;
        color: var(--txt-main);

        user-select: none;
    }
:is(.editor-container .ne-dropdown):hover { border-color: var(--border-hover); background: var(--bg-hover); }
.disabled:is(.editor-container .ne-dropdown) { opacity: 0.5; pointer-events: none; cursor: default; background-color: var(--bg-body); border-color: var(--border-color); }
.active:is(.editor-container .ne-dropdown) .ne-dropdown-menu { display: block; }
#styleDropdown:is(.editor-container .ne-dropdown) { width: 65px; box-sizing: border-box; padding: 0 4px 0 6px; }
#styleDropdown:is(.editor-container .ne-dropdown)::after{content: '';background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 10px;height: 10px;background-position: -608px -69px;margin-left: 5px;flex-shrink: 0;}
#fontDropdown:is(.editor-container .ne-dropdown) { width: 80px; box-sizing: border-box; padding: 0 4px 0 6px; }
#fontDropdown:is(.editor-container .ne-dropdown)::after{content: '';background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 10px;height: 10px;background-position: -608px -69px;margin-left: 3px;flex-shrink: 0;}
#sizeDropdown:is(.editor-container .ne-dropdown) { width: 50px; box-sizing: border-box; padding: 0 2px 0 4px; }
#sizeDropdown:is(.editor-container .ne-dropdown)::after{content: '';background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 10px;height: 10px;background-position: -608px -69px;margin-left: 5px;flex-shrink: 0;}
.editor-container .ne-dropdown-label {
        white-space: nowrap;
        overflow: hidden;
        flex: 1;
        min-width: 0;
    }
.disabled:is(.editor-container .ne-dropdown-label) { color: var(--txt-muted); }
.editor-container .ne-dropdown-menu {
        position: absolute; top: calc(100% + 4px); left: 0; background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 8px;
        box-shadow: var(--shadow-lg); z-index: 50; min-width: 140px; max-height: 300px; overflow-y: auto; display: none; padding: 6px;
    }
.editor-container .ne-dropdown-item {
        padding: 8px 12px; border-radius: 4px; cursor: pointer;  display: flex; align-items: center; color: var(--txt-main); white-space: nowrap;
    }
:is(.editor-container .ne-dropdown-item):hover { background-color: var(--bg-hover); color: var(--primary-color); }
.active:is(.editor-container .ne-dropdown-item) { background-color: var(--bg-body); color: var(--primary-color); font-weight: 600; }
:is(.editor-container .ne-dropdown-item) h1,:is(.editor-container .ne-dropdown-item) h2,:is(.editor-container .ne-dropdown-item) h3,:is(.editor-container .ne-dropdown-item) h4,:is(.editor-container .ne-dropdown-item) h5,:is(.editor-container .ne-dropdown-item) h6,:is(.editor-container .ne-dropdown-item) p,:is(.editor-container .ne-dropdown-item) address,:is(.editor-container .ne-dropdown-item) div,:is(.editor-container .ne-dropdown-item) pre {
            margin: 0;
            font-family: inherit;
            font-size: initial;
            font-size: revert;
            font-weight: initial;
            font-weight: revert;
        }
.editor-container .ne-toolbar-group-label { font-size: 10px; color: var(--txt-muted-alt); margin-right: 4px; font-weight: 600; }
.editor-container .ne-ff-myeongjo { font-family: 'Batang', 'AppleMyungjo', serif; }
.editor-container .ne-ff-malgun { font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif; }
.editor-container .ne-ff-dotum { font-family: 'Dotum', 'Apple SD Gothic Neo', sans-serif; }
.editor-container .ne-ff-gulim { font-family: 'Gulim', 'Apple SD Gothic Neo', sans-serif; }
.editor-container .ne-ff-batang { font-family: 'Batang', serif; }
.editor-container .ne-ff-gungsuh { font-family: 'Gungsuh', serif; }
.editor-container .ne-ff-arial { font-family: 'Arial', sans-serif; }
.editor-container .ne-ff-comic { font-family: 'Comic Sans MS', cursive; }
.editor-container .ne-ff-courier { font-family: 'Courier New', monospace; }
.editor-container .ne-ff-georgia { font-family: 'Georgia', serif; }
.editor-container .ne-ff-headlinea { font-family: 'HeadLineA', 'Apple Myungjo', serif; }
.editor-container .ne-ff-impact { font-family: 'Impact', sans-serif; }
.editor-container .ne-ff-tahoma { font-family: 'Tahoma', sans-serif; }
.editor-container .ne-ff-times { font-family: 'Times New Roman', serif; }
.editor-container .color-picker-wrapper {
        display: flex; align-items: center; position: relative; margin-left: 2px; width: 30px; height: 30px; justify-content: center;
    }
:is(.editor-container .color-picker-wrapper) i { font-size: 14px; color: var(--txt-muted); pointer-events: none; position: absolute; z-index: 1; }
.editor-container .tabs { display: flex; justify-content: flex-end; background: transparent; padding: 0; margin-top: 0; z-index: 5;}
.editor-container .tab-btn {
        padding: 6px 20px;
        border: 1px solid var(--border-color);
        border-top: none;
        background: white;
        cursor: pointer;
        font-size: 11px;
        font-weight: 500;
        color: #888;
        transition: color 0.15s, background-color 0.15s;
        display: flex;
        align-items: center;
        margin-left: -1px;
        outline: none;
    }
:is(.editor-container .tab-btn):hover { background: var(--bg-hover); }
.active:is(.editor-container .tab-btn) {
            background: var(--bg-body);
            font-weight: 700;
            z-index: 2;
            margin-top: -1px;
            height: calc(100% + 1px);
            border-top: 0;
        }
:is(.editor-container .tab-btn):first-child { margin-left: 0; border-bottom-left-radius:0; }
:is(.editor-container .tab-btn):last-child {border-bottom-right-radius: 5px;}
.editor-container .tab-content {
        display: none; flex: 1; min-height: 0; position: relative; overflow: hidden; border: 1px solid var(--border-color); border-bottom: none; background-color: #fff;
    }
.active:is(.editor-container .tab-content) { display: flex; flex-direction: column; }
.editor-container #preview-view {
        padding: 0;
    }
.editor-container #preview-frame {
        width: 100%;
        height: 100%;
        border: none;
        background: white;
        display: block;
    }
.editor-container .table-picker-container { position: relative; display: flex; align-items: center; }
.editor-container .table-picker {
        position: absolute; top: 40px; left: 0; background: white; border: 1px solid var(--border-color); border-radius: 8px; padding: 10px;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); display: none; z-index: 5;
    }
.active:is(.editor-container .table-picker) { display: block; }
.editor-container .table-picker-grid { display: grid; grid-template-columns: repeat(10, 20px); grid-template-rows: repeat(10, 20px); gap: 2px; }
.editor-container .table-cell {
        width: 20px; height: 20px; border: 1px solid var(--border-color); background-color: var(--bg-body); cursor: pointer;
    }
.selected:is(.editor-container .table-cell) { background-color: #3b82f6; border-color: var(--primary-color); }
.editor-container .table-picker-status { text-align: center; margin-top: 10px; font-size: var(--radius-lg); font-weight: 600; color: var(--txt-muted); }
.editor-container .ai-dropdown-container { position: relative; display: flex; align-items: center; }
.editor-container .ai-menu {
        position: absolute; top: 40px; right: 0; background: white; border: 1px solid var(--border-color); border-radius: 8px; padding: 6px;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); display: none; z-index: 5; min-width: 160px;
    }
.active:is(.editor-container .ai-menu) { display: block; }
:is(.editor-container .ai-menu) button {
            width: 100%; height: auto; padding: 10px var(--radius-lg); text-align: left;
            justify-content: flex-start; font-size: 13px; border: none; border-radius: 4px;
            background: transparent; color: var(--txt-muted); cursor: pointer;
        }
:is(:is(.editor-container .ai-menu) button):hover { background-color: var(--bg-hover); color: var(--primary-color); }
.editor-container .fa-spin { display: inline-block;  }
.editor-container .scrap-loading {
        display: block;
        padding: var(--radius-lg);
        background: var(--bg-hover);
        border: 1px dashed var(--border-hover);
        border-radius: 8px;
        color: var(--txt-muted-alt);
        font-size: 14px;
        margin: 10px 0;

    }
.editor-container .scrap-error {
        display: block;
        padding: var(--radius-lg);
        background: var(--danger-bg);
        border: 1px solid var(--danger-border);
        border-radius: 8px;
        color: #e11d48;
        font-size: 14px;
        margin: 10px 0;
    }
.editor-container .settings-modal {
        position: absolute; top: 50%; left: 50%; transform: translate(-50%, -40%) scale(0.95); width: 400px;
        background: white; border-radius: var(--radius-lg); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
        z-index: 400; opacity: 0; pointer-events: none;
        border: 1px solid var(--border-color); display: flex; flex-direction: column;
    }
.active:is(.editor-container .settings-modal) { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.editor-container .settings-header {
        padding: 166px 20px; border-bottom: 1px solid var(--border-color); display: flex; justify-content: space-between; align-items: center;
    }
:is(.editor-container .settings-header) h3 { margin: 0; font-size: 16px; font-weight: 600; color: var(--txt-header); display: flex; align-items: center; gap: 8px; }
.editor-container .close-settings { background: none; border: none; color: var(--txt-muted-alt); cursor: pointer; font-size: 18px; padding: 4px; line-height: 1; }
:is(.editor-container .close-settings):hover { color: var(--danger-color); }
.editor-container .settings-body { padding: 20px; }
:is(.editor-container .settings-body) h4 { margin: 0 0 16px 0; font-size: 14px; font-weight: 600; color: var(--txt-muted); }
.editor-container .plugin-list {
        list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px;
    }
:is(.editor-container .plugin-list) li {
            padding: var(--radius-lg) 16px; background: var(--bg-body); border: 1px solid var(--border-color); border-radius: 8px;
            display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--radius-lg);
        }
:is(:is(.editor-container .plugin-list) li):hover { border-color: var(--border-hover); background: var(--bg-hover); }
.editor-container .plugin-info { display: flex; flex-direction: column; gap: 2px; flex: 1; cursor: pointer; }
.editor-container .plugin-name { font-size: 13px; font-weight: 600; color: var(--txt-main); text-transform: capitalize; }
.editor-container .plugin-actions { display: flex; gap: 16px; align-items: center; }
.editor-container .action-group { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.editor-container .plugin-status { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 10px; }
.active:is(.editor-container .plugin-status) { background: #dcfce7; color: #166534; }
.editor-container .switch { position: relative; display: inline-block; width: 34px; height: 20px; }
:is(.editor-container .switch) input { opacity: 0; width: 0; height: 0; }
.editor-container .slider {
        position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--border-color);  border-radius: 20px;
    }
:is(.editor-container .slider)::before { position: absolute; content: ""; height: 14px; width: 14px; left: 3px; bottom: 3px; background-color: white;  border-radius: 50%; }
.editor-container input:checked + .slider { background-color: var(--primary-color); }
.editor-container input:focus + .slider { box-shadow: 0 0 1px var(--primary-color); }
.editor-container .hidden-toolbar { display: none !important; }
.editor-container .toolbar-divider { width: 1px; height: 20px; background: var(--border-color); margin: 0 4px; }
.editor-container .ne-error-msg { color: #ff4d4f; font-size: 12px; margin-top: -10px; padding-left: 4px;  }
.representative:is(.editor-container .ne-image,.editor-container .ne-video) { outline: 4px solid var(--primary-color); outline-offset: -4px; }
.editor-container .image-floating-overlay {
        position: absolute; pointer-events: none; background: rgba(0, 0, 0, 0.4); border-radius: 8px; display: none; z-index: 5;
         opacity: 0; align-items: center; justify-content: center; box-sizing: border-box;
    }
.active:is(.editor-container .image-floating-overlay) { display: flex; opacity: 1; border: 2px solid var(--primary-color); }
.representative:is(.editor-container .image-floating-overlay) { box-shadow: inset 0 0 0 4px var(--primary-color); }
.representative:is(.editor-container .image-floating-overlay) .rep-badge { display: block; }
.editor-container .ne-image-resize-handle {
        position: absolute;
        width: 10px;
        height: 10px;
        background-color: var(--primary-color);
        border: none;
        right: -5px;
        bottom: -5px;
        cursor: se-resize;
        z-index: 10;
        transition: transform 0.1s ease;
        display: flex;
        align-items: center;
        justify-content: center;
        pointer-events: auto;
    }
:is(.editor-container .ne-image-resize-handle):hover { transform: scale(1.2); }
:is(.editor-container .ne-image-resize-handle) svg { display: none; }
.editor-container.ne-image-resizing,.editor-container.ne-image-resizing * {
        cursor: se-resize !important;
        user-select: none !important;
        -webkit-user-select: none !important;
    }
.editor-container .overlay-buttons { display: flex; gap: 12px; pointer-events: none; }
.editor-container .overlay-btn {
        position: relative;
        width: 35px; height: 35px; border-radius: 50%; border: none; padding: 0; background: rgba(255, 255, 255, 0.9); color: var(--txt-muted);
        cursor: pointer; font-size: 14px;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); pointer-events: auto;
    }
:is(.editor-container .overlay-btn):hover {  background: white; }
.star-btn:is(.editor-container .overlay-btn):hover,.star-btn.active:is(.editor-container .overlay-btn) {
            color: #ef4444;
        }
:is(.star-btn:is(.editor-container .overlay-btn):hover,.star-btn.active:is(.editor-container .overlay-btn)) svg.ne-svg-star {
                fill: currentColor;
            }
.delete-btn:is(.editor-container .overlay-btn):hover { color: var(--danger-color); }
:is(.editor-container .overlay-btn) .ne-svg-icon {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            display: block;
            margin: 0;
        }
:is(.editor-container .overlay-btn) .ne-svg-star {
            width: 17px;
            height: 15px;
        }
:is(.editor-container .overlay-btn) .ne-svg-trash {
            width: 15px;
            height: 17px;
        }
.editor-container .rep-badge { position: absolute; top: 12px; left: 12px; background: var(--primary-color); color: white; padding: 2px 10px; border-radius: 20px; font-size: 11px; font-weight: 700; display: none; }
.editor-container .ne-table td.selected,.editor-container .ne-table th.selected { background-color: rgba(59, 130, 246, 0.05); box-shadow: inset 0 0 0 2px var(--primary-color); position: relative; z-index: 1; }
.editor-container .ne-table-adder {
        position: absolute; width: 20px; height: 20px; background-color: var(--primary-color); color: white; border-radius: 50%;
        display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 12px; z-index: 5; box-shadow: 0 2px 4px rgba(0,0,0,0.2);  opacity: 0.8;
    }
:is(.editor-container .ne-table-adder):hover {  opacity: 1; }
:is(.editor-container .ne-table-adder) .ne-svg-icon { width: 14px; height: 14px; display: block; margin: 0; }
.editor-container .ne-table-caption-container { margin-top: 8px; display: flex; gap: 8px; align-items: center; }
.editor-container .ne-table-caption-input { flex: 1; padding: 6px 12px; border: 1px solid var(--border-color); border-radius: var(--radius-sm); font-size: 14px; outline: none; }
:is(.editor-container .ne-table-caption-input):focus { border-color: var(--primary-color); }
.editor-container .ne-table-caption-btn { padding: 6px 12px; background: var(--primary-color); color: white; border: none; border-radius: var(--radius-sm); cursor: pointer; font-weight: 500; }
.editor-container .ne-emoticon { vertical-align: middle; border: 0; }
.editor-container .settings-chevron { font-size: 10px; margin-left: 5px; color: var(--txt-light); transition: transform 0.2s ease; width: 10px; height: 10px; }
.expanded:is(.editor-container .settings-chevron) { transform: rotate(90deg); }
.editor-container .settings-detail-panel { width: 100%; margin-top: 10px; padding: 10px; background: var(--bg-surface); border-top: 1px dashed var(--border-color); border-radius: 4px; }
.editor-container .detail-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.editor-container .detail-label { font-size: 12px; color: var(--txt-muted); }
.editor-container .detail-select { padding: 6px 8px; border: 1px solid var(--border-hover); border-radius: 4px; font-size: 12px; }
.editor-container .detail-empty { font-size: 11px; color: var(--txt-light); font-style: italic; }
.editor-container .empty-state-small { font-size: 12px; color: var(--txt-light); width: 100%; text-align: center; padding: 10px; }
.editor-container.ne-fullscreen {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        margin: 0 !important;
        z-index: 9999 !important;
        background-color: var(--bg-surface);
        border: none !important;
        border-radius: 0 !important;
    }
.editor-container.ne-fullscreen #editor-view,.editor-container.ne-fullscreen #source-view { flex: 1 !important; height: auto !important; }
.editor-container.ne-fullscreen .ne-content,.editor-container.ne-fullscreen .source-area { height: 100% !important; }
.editor-container.ne-fullscreen .ne-resize-handle { display: none !important; }
.editor-container .ne-toolbar-extra {
        position: absolute;
        top: 3px;
        right: 3px;
        z-index: 10;
    }
:is(.editor-container .ne-toolbar-extra) .ne-fullscreen-btn {min-width: 25px !important;height: 25px !important;}
.editor-container .ne-fullscreen-btn {
        width: 28px;
        height: 28px;
        display: flex;
        align-items: center;
        justify-content: center;
        border: none !important;
        background: transparent !important;
        color: #94a3b8 !important;
        cursor: pointer;

        font-size: 14px;
    }
:is(.editor-container .ne-fullscreen-btn) i { color: #94a3b8 !important; }
:is(.editor-container .ne-fullscreen-btn) .ne-svg-icon {
            width: 14px;
            height: 14px;
        }
:is(.editor-container .ne-fullscreen-btn):hover,:is(.editor-container .ne-fullscreen-btn):hover i { background-color: transparent !important; color: var(--primary-color) !important; }
.editor-container .ne-resize-handle {
        height: 25px;
        background-color: #fafafc;
        border-top: 0;
        border-left: 1px solid var(--border-color);
        border-right: 1px solid var(--border-color);
        border-bottom: 1px solid var(--border-color);
        border-bottom-left-radius:5px;
        cursor: ns-resize;
        display: flex;
        padding-right: 5px;
        align-items: center;
        justify-content: flex-end;
        position: relative;
    }
:is(.editor-container .ne-resize-handle):hover { background-color: var(--bg-hover); }
.editor-container .ne-resize-line {
        background: var(--ne-editor-icons) no-repeat;
        display: inline-block;
        width: 15px;
        height: 15px;
        background-position: -747px -8px;
    }
/* Auto Height Overrides */
.editor-container.ne-auto-height {
        height: auto !important;
    }
.editor-container.ne-auto-height .tab-content {
            height: auto !important;
        }
.editor-container.ne-auto-height .ne-content {
            height: auto !important;
            min-height: var(--ne-min-height, 500px);
            overflow: hidden !important;

            /* (1) 텍스트 가로 넘어감 강제 줄바꿈 방지 */
            word-wrap: break-word !important;
            overflow-wrap: break-word !important;
            word-break: break-all !important;
            
            /* (2) 이미지 및 미디어 크기 제한 */
        }
:is(.editor-container.ne-auto-height .ne-content) img,:is(.editor-container.ne-auto-height .ne-content) video,:is(.editor-container.ne-auto-height .ne-content) iframe {
                max-width: 100% !important;
                height: auto !important;
            }
/* (3) 표 (Table) 강제 100% 핏 및 줄바꿈 */
:is(.editor-container.ne-auto-height .ne-content) table {
                max-width: 100% !important;
                width: 100% !important;
                table-layout: fixed !important;
                word-break: break-word !important;
            }
:is(.editor-container.ne-auto-height .ne-content) td,:is(.editor-container.ne-auto-height .ne-content) th {
                word-break: break-all !important;
                overflow-wrap: break-word !important;
            }
/* (4) 사전 서식 텍스트 내부 스크롤 허용 또는 강제 줄바꿈 */
:is(.editor-container.ne-auto-height .ne-content) pre {
                white-space: pre-wrap !important;
                word-wrap: break-word !important;
                max-width: 100% !important;
                overflow-x: auto !important;
            }
.editor-container.ne-auto-height .ne-scrollbar-thumb,.editor-container.ne-auto-height .ne-scrollbar-thumb-x {
            display: none !important;
        }
/* Generic Neditor Modal (.ne-modal) */
.ne-modal {
    position: fixed;
    top: -15%;
    left: 50%;
    transform:translateX(-50%);
    width: 100%;
    height: 100%;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    opacity: 0;
    }
.ne-modal.active {display: flex;opacity: 1;}
.ne-modal.ne-link-modal .ne-modal-body {
        display:flex;
        margin-bottom: 15px;
        border-bottom: 1px solid #dadada;
    }
:is(.ne-modal.ne-link-modal .ne-modal-body) #linkSearchBtn{
            display: inline-block;width: 60px;border: 0;background-color: #f8fafc;
        }
:is(:is(.ne-modal.ne-link-modal .ne-modal-body) #linkSearchBtn)::after{
                content:"";
                background: var(--ne-editor-icons) no-repeat;
                display: inline-block;
                width: 32px;
                height: 32px;
                padding-right: 7px;
                background-position: 0 -88px;
            }
.ne-modal .ne-modal-input {
        width: 100%;
        height: 40px;
        padding: 0 0 0 16px;
        border: 0;
        background: #f8fafc;
        font-size: 15px;
        font-weight:100;
        box-sizing: border-box;
        flex: 1;
        color: #8e8e8e;
    }
.error:is(.ne-modal .ne-modal-input) { border-color: #ff4d4f; background: #fff1f0; }
.ne-modal .ne-modal-content {
        background-color: #fff;
        border: 1px solid var(--border-hover);
        border-radius: 15px;
        box-shadow: var(--shadow-xl);
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }
.ne-modal.active .ne-modal-content { opacity: 1; }
.ne-modal.small .ne-modal-content {width: 400px;max-width: 95vw;box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18);}
.ne-modal.medium .ne-modal-content { width: 600px; max-width: 95vw; }
.ne-modal.large .ne-modal-content {width: 800px;box-shadow: 0px 1px 9px #dddddd;}
.ne-modal.ne-video-modal .ne-modal-content,.ne-modal.ne-link-modal .ne-modal-content {width: 600px;}
.ne-modal .ne-modal-header {display: flex;justify-content: space-between;align-items: center;padding: 13px 20px;border-bottom: 1px solid #ccc;}
.ne-modal .ne-modal-title {margin: 0;font-size: 20px;font-weight: 700;color: var(--txt-header);}
.ne-modal .ne-modal-close-btn {background: var(--ne-editor-icons) no-repeat;background-position: -627px -57px;width: 32px;height: 32px;border: 0;cursor: pointer; }
:is(.ne-modal .ne-modal-close-btn):hover { color: var(--danger-color); }
.ne-modal .ne-modal-footer {
        padding: 0 24px 20px 24px;
        background: white;
        display: flex;
        justify-content: center;
        align-items: flex-start;
        border-radius: 0 0 20px 20px;
    }
.ne-modal .btn-confirm,.ne-modal .btn-cancel,.ne-modal .btn-play,.ne-modal .btn-add,.ne-modal .btn-clear {
        padding: 5px 32px;
        font-size: 13px;
        font-weight: 600;
        border-radius: 5px;
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 3px;
    }
.ne-modal .btn-confirm {background: #eff3ff;color: #408be6;border: 1px solid #c9d8ff;cursor: pointer;height: 32px;box-sizing: border-box;font-size: 13px;}
.ne-modal .btn-cancel {background: #f7f5f6;color: #8b8b8b;border: 1px solid #dddddd;cursor: pointer;font-size: 13px;height: 32px;}
.ne-modal .btn-play {
        background: #ffffff;
        color: #757575;
        border: 1px solid #d2d2d2;
        padding: 5px 20px;
        box-sizing: border-box;
        height: 30px;
    }
:is(.ne-modal .btn-play)::before{content:"";background: var(--ne-editor-icons) no-repeat;background-position: -743px -34px;font-size: 22px;color: #aaa;width: 20px;height: 20px;display: flex;align-items: center;justify-content: center;border: none;cursor: pointer;}
.ne-modal .btn-add { background: var(--primary-color); color: white; border: none; }
:is(.ne-modal .btn-add):hover { background: var(--primary-hover); box-shadow: 0 4px var(--radius-lg) rgba(37, 99, 235, 0.3); }
.ne-modal .btn-clear { background: var(--bg-hover); color: var(--txt-muted-alt); border: 1px solid var(--border-color); }
:is(.ne-modal .btn-clear):hover { background: var(--danger-color); color: white; border-color: var(--danger-color); }
.ne-modal .btn-clear-minimal {
        background: transparent;
        border: 1px solid #dadada;
        color: #757575;
        border-radius: 5px;
        font-size: 13px;
        font-weight: 500;
        display: flex;
        margin-right: 15px;
        align-items: center;
        gap: 6px;
        cursor: pointer;
        padding: 0 11px;
        height: 32px;
    }
:is(.ne-modal .btn-clear-minimal):hover { 
            color: var(--danger-color);
        }
:is(.ne-modal .btn-clear-minimal):hover .ne-svg-icon { fill: currentColor !important; }
:is(.ne-modal .btn-clear-minimal) .ne-svg-icon { fill: currentColor !important; }
.ne-modal .footer-group {display: flex;align-items: center;}
.ne-modal .footer-group {display: flex;align-items: center;justify-content: flex-end;gap: 5px;}
/* Document Modal Styles */
.ne-modal .document-list {
        display: flex;
        flex-direction: column;
        gap: 5px;
        max-height: 250px;
        overflow-y: auto;
        overflow-x: hidden;
        box-sizing: border-box;
        margin-bottom: 12px;
        align-items: center;
    }
:is(.ne-modal .document-list)::-webkit-scrollbar {
            width: 6px;
        }
:is(.ne-modal .document-list)::-webkit-scrollbar-thumb {
            background: #e2e8f0;
            border-radius: 10px;
        }
.ne-modal .doc-list-item {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 89%;
        padding: 12px 16px;
        background: #f8fafc;
        border: 1px solid #edf2f7;
        border-radius: 3px;
    }
:is(.ne-modal .doc-list-item):first-of-type {
            margin-top: 6px;
        }
.ne-modal .doc-info {
        display: flex;
        align-items: center;
        gap: 12px;
        flex: 1;
        min-width: 0;
    }
:is(.ne-modal .doc-info) i {
            color: #64748b;
            font-size: 16px;
        }
:is(.ne-modal .doc-info) .ne-svg-icon {
            color: #64748b;
            width: 15px;
            height: 15px;
            flex-shrink: 0;
        }
.ne-modal .doc-name {
        font-size: 13px;
        font-weight: 500;
        color: #334155;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
.ne-modal .doc-size {
        font-size: 11px;
        color: #94a3b8;
        white-space: nowrap;
    }
.ne-modal .doc-del-btn {
        background: transparent;
        border: none;
        color: #94a3b8;
        cursor: pointer;
        padding: 6px;
        border-radius: 6px;
        transition: all 0.2s ease;
        display: flex;
        align-items: center;
        justify-content: center;
    }
:is(.ne-modal .doc-del-btn):hover {
            background: #fee2e2;
            color: #ef4444;
        }
:is(.ne-modal .doc-del-btn) .ne-svg-icon {
            width: 15px;
            height: 15px;
            flex-shrink: 0;
        }
.ne-modal .loading-state,.ne-modal .error-state {
        padding: 40px 20px;
        text-align: center;
        font-size: 13px;
        color: #94a3b8;
    }
.ne-modal .empty-state-small {
        font-size: 12px;
        color: #94a3b8;
        width: 100%;
        text-align: center;
        padding: 30px 20px;
        background: #fafafc;
        border: 1px dashed #e2e8f0;
        border-top: 0;
        box-sizing: border-box;
        line-height: 1.5;
    }
.ne-modal.ne-video-modal .ne-modal-body {display: flex;flex-direction: column;overflow-x: hidden;border-bottom: 1px solid #dbdbdb;margin-bottom: 12px;}
.ne-modal .ne-video-preview {
        aspect-ratio: 16 / 9;
        background: #fafafc;
        border-radius: 12px;
        border: 2px dashed #d8e2ff;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        position: relative;
        margin: 12px;
        box-sizing: border-box;
    }
:is(.ne-modal .ne-video-preview) iframe { width: 100% !important; height: 100% !important; border: none; }
.ne-modal .ne-preview-placeholder {color: #aaaaaa;font-size: 13px;text-align: center;padding: 20px;
    }
:is(.ne-modal .ne-preview-placeholder)::before{content:"";background: var(--ne-editor-icons) no-repeat;background-position: -697px -60px;width: 30px;height: 30px;display: block;margin: 4px auto;}
.ne-modal.ne-series-modal .ne-modal-content { width: 606px; max-width: 95vw; overflow: visible; }
.ne-modal.ne-series-modal .ne-modal-title{display:flex;align-items: center;position: relative;}
.ne-modal.ne-series-modal .ne-series-new-box{padding: 15px 20px;
    }
:is(.ne-modal.ne-series-modal .ne-series-new-box) .ne-modal-input{color:#444; border: 1px solid #ccc;border-radius: 4px;background-color: #fafafc;}
.ne-modal.ne-series-modal .ne-modal-footer{
    border-top: 1px solid #dadada;
    padding-top: 15px;
}
.ne-modal.ne-series-modal .btn-confirm{
        background-color: #eff3ff;
        border: 1px solid #c1c1c1;
        color: #5a5c5b;
        height: 40px;
        padding: 0 20px;
        font-size: 14px;
        border-radius: 3px;
        }
.ne-modal.ne-series-modal .btn-cancel{
    background-color: #eff3ff;
    border-color: #d7e0ff;
    border-radius: 4px;
    color: #3e89e4;
    font-size: 13px;
}
.ne-modal.ne-series-modal .ne-series-info-img{display:inline-block;width: 25px;height: 25px;background: var(--ne-editor-icons) no-repeat;background-position: -389px -90px;cursor: pointer;margin: 0 0 0 3px;}
.ne-modal.ne-series-modal #neSeriesInfoTooltip{visibility: visible;opacity: 1;position: absolute;top: 33px;left: 188px;width: 297px;white-space: normal;background: #fff6f7;color: #b9827f;padding: 7px 10px;border-radius: 8px;font-size: 12px;line-height: 1.5;z-index: 1000;box-shadow: 0 4px 12px rgba(0,0,0,0.12);border: 1px solid #ffd0d0;}
.ne-modal.ne-series-modal #neSeriesInfoTooltip::after{content: '';position: absolute;bottom: 100%;left: 14px;border-width: 6px;border-style: solid;border-color: transparent transparent #fff0f0 transparent;}
.ne-modal.ne-series-modal #neSeriesInfoTooltip ul{margin: 0;padding-left: 16px;}
.ne-modal.ne-series-modal #neSeriesInfoTooltip li{margin-bottom: 4px;color: #c0392b;list-style-type: disc;}
.ne-modal.ne-series-posts-modal { background: none; pointer-events: none; }
.ne-modal.ne-series-posts-modal .ne-modal-content { width: 420px; max-width: 95vw; margin-left: 300px; pointer-events: auto; }
.ne-modal .ne-series-new-box { display: flex; gap: 8px; padding-bottom: 0; border-bottom: none; margin-bottom: 16px; }
:is(.ne-modal .ne-series-new-box) input { flex: 1; }
.ne-modal .ne-series-tabs-header {display: flex;justify-content: space-between;align-items: flex-end;border-bottom: 1px solid #dadada;margin-bottom: 10px;padding: 0 20px;}
.ne-modal .ne-series-manage-link {font-size: 13px;color: #3d8ae6;text-decoration: none;margin-bottom: 8px;display: flex;align-items: center;
    }
:is(.ne-modal .ne-series-manage-link) svg,:is(.ne-modal .ne-series-manage-link) i { margin-right: 4px; }
:is(.ne-modal .ne-series-manage-link):hover { color: var(--primary-color); text-decoration: underline; }
:is(.ne-modal .ne-series-manage-link)::before{content:"";display: inline-block;width: 20px;height: 20px;background: var(--ne-editor-icons) no-repeat;background-position: -421px -94px;margin-right: 2px;}
.ne-modal .ne-series-tabs {display: flex;}
.ne-modal .ne-series-tab {padding: 8px 0;background: #ffffff;width: 100px;border: 1px solid #dadada;cursor: pointer;font-size: 14px;color: #64748b;margin-bottom: -1px; }
.active:is(.ne-modal .ne-series-tab) {color: #fff;font-weight: bold;background-color: #7daaed;}
.ne-modal .ne-series-tab:first-of-type{border-right:0;}
.ne-modal .ne-series-list-box {height: 250px;display: flex;flex-direction: column;gap: 8px;padding: 0 15px;}
.ne-modal #seriesList { flex: 1; overflow-y: auto; overflow-x: hidden; }
.ne-modal .ne-series-item {
        padding: 12px; border: 1px solid var(--border-color); border-radius: 8px; cursor: pointer; background: #fff;  display: flex; justify-content: space-between; align-items: center; font-size: 14px; margin-bottom: 8px;
    }
:is(.ne-modal .ne-series-item):hover { border-color: var(--primary-color); background: #eff6ff; }
.disabled:is(.ne-modal .ne-series-item) { opacity: 0.5; background: #f8fafc; cursor: default; }
.disabled:is(.ne-modal .ne-series-item):hover { border-color: var(--border-color); background: #f8fafc; }
.disabled:is(.ne-modal .ne-series-item) .series-title-text:hover { text-decoration: none; cursor: default; }
.disabled:is(.ne-modal .ne-series-item) .ne-series-post-btn { cursor: pointer; }
.ne-modal .series-title-text { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-right: 12px; }
:is(.ne-modal .series-title-text):hover { text-decoration: underline; }
.ne-modal .ne-series-post-btn { padding: 4px 10px; font-size: 12px; background: #f1f5f9; border: 1px solid #cbd5e1; border-radius: 4px; cursor: pointer; white-space: nowrap; color: #334155; }
:is(.ne-modal .ne-series-post-btn):hover { background: #e2e8f0; }
.ne-modal .ne-series-item-empty { padding: 20px; text-align: center; color: #64748b; background: #f8fafc; border-radius: 8px; border: 1px dashed #cbd5e1; }
.error:is(.ne-modal .ne-series-item-empty) { color: #ff4d4f; }
.ne-modal .ne-series-view-posts { padding: 0 10px 10px 10px; box-sizing: border-box; }
.ne-modal .ne-series-posts-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 15px; padding-bottom: 12px; margin-bottom: 16px; border-bottom: 1px solid var(--border-color); }
.ne-modal .ne-series-posts-title-edit { display: flex; gap: 8px; flex: 1; }
:is(.ne-modal .ne-series-posts-title-edit) .ne-modal-input { flex: 1; font-size: 14px; padding: 0 10px; height: 36px; }
:is(.ne-modal .ne-series-posts-title-edit) .btn-confirm { padding: 0 16px; }
.ne-modal .ne-series-back-btn-icon { background: none; border: none; color: var(--primary-color); cursor: pointer; font-size: 18px; font-weight: bold; padding: 4px 8px; border-radius: 4px; }
:is(.ne-modal .ne-series-back-btn-icon):hover { background: #f1f5f9; }
.ne-modal .ne-series-posts-list { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; max-height: 250px; }
.ne-modal .ne-series-post-item { display: flex; justify-content: space-between; align-items: center; padding: 10px; border: 1px solid #f1f5f9; border-radius: 6px; cursor: pointer; font-size: 13px; }
:is(.ne-modal .ne-series-post-item):hover { background: #f8fafc; border-color: #cbd5e1; }
:is(.ne-modal .ne-series-post-item) .post-title { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-right: 10px; }
:is(.ne-modal .ne-series-post-item) .post-date { color: #94a3b8; font-size: 12px; white-space: nowrap; }
.ne-modal.image-upload-modal .ne-modal-body {display: flex;padding: 0;margin: 20px 0 15px 0;height: 437px;}
.ne-modal.image-upload-modal .ne-modal-header { display: flex; }
.ne-modal.image-upload-modal .ne-modal-footer {justify-content: space-between;}
.ne-modal .image-upload-main {flex: 1;display: flex;height: 100%;flex-direction: column;padding: 0 18px 0px 20px;background: rgba(255, 255, 255, 0.4);box-sizing: border-box;}
.ne-modal .image-upload-controls { display: flex; align-items: center; gap: var(--radius-lg); margin-bottom: 20px; }
.ne-modal .upload-hint { font-size: var(--radius-lg); color: var(--txt-light); }
.ne-modal .image-drop-zone {
        flex: 1;
        border: 2px dashed #d8e1ff;
        border-radius: 5px;
        box-sizing: border-box;
        background: #ffffff;
        position: relative;
        overflow-y: auto;
        overflow-x: hidden;
        display: flex;
        flex-direction: column;
    }
.dragover:is(.ne-modal .image-drop-zone) { border-color: var(--primary-color); background: rgba(37, 99, 235, 0.05); }
.ne-modal .image-grid {display: grid;grid-template-columns: repeat(4, 1fr);gap: 5px;width: 100%;padding: 10px;box-sizing: border-box;align-content: start; }
:is(.ne-modal .image-grid):has(.empty-grid-msg) { display: flex; flex: 1; align-items: center; justify-content: center; padding: 0; }
.ne-modal .empty-grid-msg {display: flex;flex-direction: column;align-items: center;justify-content: center;color: var(--txt-light);width: 100%;text-align: center;position: absolute;top: 50%;transform: translateY(-50%); }
:is(.ne-modal .empty-grid-msg) p {font-size: 16px;line-height: 1.6;color: #757575;}
.ne-modal .resize-hint {font-size: 12px;color: #7c7c7c;margin: 4px 0 0 0;}
.ne-modal .video-limit-hint {font-size: 11px;color: #888b90;margin: 1px 0 0 0;}
.ne-modal .sidebar-info-box {background: #f9f9fb;border-radius: 5px;padding: 10px;line-height: 1.5;}
.ne-modal .resize-row { display: flex; align-items: center; gap: 8px; }
:is(.ne-modal .resize-row) .resize-label { font-size: 13px; color: var(--txt-muted); white-space: nowrap; }
:is(.ne-modal .resize-row) select { flex: unset; width: 75px; min-width: 75px; max-width: 75px; }
.ne-modal .resize-section-box {background: #f9f9fb;border-radius: 5px;padding: 10px;display: flex;flex-direction: column;gap: 0px;}
.ne-modal .watermark-use-label {
        font-size: 12px;
        font-weight: normal;
        color: #7c7c7c;
        display: flex;
        align-items: center;
        cursor: pointer;
        margin-left: auto;
        gap: 6px;
    }
:is(.ne-modal .watermark-use-label) input[type="checkbox"] {
            appearance: none;
            -webkit-appearance: none;
            width: 13px;
            height: 13px;
            min-width: 13px;
            border: 1px solid #cacaca;
            border-radius: 3px;
            background: #fff;
            cursor: pointer;
            box-sizing: border-box;
        }
:is(:is(.ne-modal .watermark-use-label) input[type="checkbox"]):checked {
                background: #fff;
                border-color: #cacaca;
                background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'%3E%3Cpath d='M1 4l3 3 5-6' stroke='%23323232' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
                background-repeat: no-repeat;
                background-position: center;
                background-size: 10px 8px;
            }
.ne-modal .upload-counters-wrap { display: flex; flex-direction: column; gap: 0; }
.ne-modal .image-item {
        position: relative; aspect-ratio: 1.2; border-radius: 8px; overflow: hidden; background: white; border: 1px solid var(--border-color); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    }
:is(.ne-modal .image-item) img,:is(.ne-modal .image-item) video,:is(.ne-modal .image-item) .image-preview { width: 100%; height: 100%; object-fit: cover; }
:is(.ne-modal .image-item) .remove-img { position: absolute; top: 4px; right: 4px; width: 20px; height: 20px; background: rgba(0, 0, 0, 0.5); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 10px; cursor: pointer; opacity: 0;  }
:is(.ne-modal .image-item):hover .remove-img { opacity: 1; }
.ne-modal .image-upload-sidebar {width: 205px;padding: 0 24px 0 0px;display: flex;flex-direction: column;gap: 8px;height: 100%;box-sizing: border-box;overflow-y: auto;overflow-x: hidden;}
.ne-modal .sidebar-section h4 {
        margin: 0 0 5px 0;
        font-size: 13px;
        font-weight: 700;
        color: #191919;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        display: flex;
        align-items: center;
    }
:is(.ne-modal .sidebar-section h4)::after {flex: 1;height: 1px;background: var(--border-color);}
:is(.ne-modal .sidebar-section h4) input[type="checkbox"] {width: 12px;height: 12px;cursor: pointer;}
.ne-modal .sidebar-info p {margin: 1px 0;font-size: var(--radius-lg);color: #7d7d7d;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
.ne-modal .align-options {
        display: flex; gap: 4px;

        }
:is(.ne-modal .align-options) label {
                width: 30px;
                height: 30px;
                display: flex;
                align-items: center;
                justify-content: center;
                border: 1px solid #dddddd;
                border-radius: 6px;
                cursor: pointer;
                color: var(--txt-muted-alt);
                background-color: #fff; }
:is(:is(.ne-modal .align-options) label)::after{
                    content:"";
                    background:var(--ne-editor-icons) no-repeat;
                    background-position: -204px -59px;
                    display: inline-block;
                    width: 32px;
                    height: 32px;
                    opacity: 0.5;
                }
.align-center:is(:is(.ne-modal .align-options) label)::after{content:"";background-position-x: -236px;}
.align-right:is(:is(.ne-modal .align-options) label)::after{content:"";background-position-x: -268px;}
:is(.ne-modal .align-options) label {
                        border-radius: 5px; }
:is(:is(.ne-modal .align-options) label):has(input:checked) {background-color: #fff;}
:is(:is(.ne-modal .align-options) label):has(input:checked)::after { opacity: 1; }
:is(.ne-modal .align-options) input { display: none; }
.ne-modal .check-option {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 13px;
            color: #7c7c7c;
            cursor: pointer;
        }
:is(.ne-modal .check-option) input[type="checkbox"] {
                appearance: none;
                -webkit-appearance: none;
                width: 14px;
                height: 14px;
                min-width: 14px;
                border: 1px solid #cacaca;
                border-radius: 3px;
                background: #fff;
                cursor: pointer;
                box-sizing: border-box;
            }
:is(:is(.ne-modal .check-option) input[type="checkbox"]):checked {
                    background: #fff;
                    border-color: #cacaca;
                    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'%3E%3Cpath d='M1 4l3 3 5-6' stroke='%23323232' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
                    background-repeat: no-repeat;
                    background-position: center;
                    background-size: 10px 8px;
                }
.ne-modal .sidebar-section select {width: 100%;padding: 0px;border-radius: 6px;border: 1px solid #ccc;background: white;font-size: 13px;color: var(--txt-main);outline: none;}
.ne-modal .upload-counters {display: flex;align-items: flex-start;gap: 1px;flex-wrap: wrap;flex-direction: column;}
.ne-modal .counter-item {
        font-size: 12px;color: var(--txt-muted-alt);font-weight: 700;color: #333333;
}
:is(.ne-modal .counter-item) strong.photo-count-strong { color: var(--primary-color); }
:is(.ne-modal .counter-item) strong#photoCount{color: #4a7be6;}
.ne-modal .watermark-options-panel {background-color: #f9f9fb;padding: 10px;border-radius: 5px;margin-top: 5px; }
.disabled:is(.ne-modal .watermark-options-panel) {pointer-events: none;filter: grayscale(1);}
.ne-modal .watermark-option-row {display: flex;align-items: center;gap: 9px;margin-bottom: 5px; }
:is(.ne-modal .watermark-option-row):last-child { margin-bottom: 0; }
.ne-modal .option-label {font-size: 12px;color: #454545;text-transform: uppercase;letter-spacing: 0.05em;min-width: 32px;}
.ne-modal .size-btn {padding: 1px 5px;border: 1px solid #ccc;background: #ffffff;font-size: 11px;font-weight: 500;color: #bebebe;cursor: pointer;box-sizing: border-box;border-radius: 4px; }
.active:is(.ne-modal .size-btn) {color: #919191;font-weight: 700;background: #fff;}
.ne-modal .pos-selects {display: flex;gap: 5px; }
:is(.ne-modal .pos-selects) select {padding: 1px 9px 1px 1px;border: 1px solid #ccc;border-radius: 4px;font-size: 12px;background: white;color: var(--txt-main);}
.ne-modal .info-icon { font-size: 12px; color: var(--txt-light); margin-left: 4px; cursor: help; }
.ne-modal .ne-video-input-wrapper{width:100%;border-bottom: 1px solid #dbdbdb;padding: 0 15px;box-sizing: border-box;background-color: #fafafc;
    }
:is(.ne-modal .ne-video-input-wrapper) .ne-modal-textarea {
            width: 100%;
            height: 65px;
            border: 0;
            padding: 10px 0;
            font-size: 15px;
            line-height: 1.5;
            background-color: transparent;
            resize: none;
            overflow: hidden;
            box-sizing: border-box;
        }
.ne-modal.ne-map-modal .ne-modal-content {
            width: 600px;
            height: 580px;
            max-width: 95vw;
            max-height: 95vh;
            border-radius: 16px;
            box-shadow: 0 8px 40px rgba(0,0,0,0.18);
            overflow: hidden;
            padding-bottom:10px;
        }
.ne-modal.ne-map-modal .ne-modal-header {
            display: flex;
            padding: 13px 20px;
            border-bottom: 1px solid #d6d6d6;
            background: #fff;
        }
.ne-modal.ne-map-modal .ne-modal-title {
            font-size: 20px;
            font-weight: 800;
            color: #111;
        }
.ne-modal.ne-map-modal .ne-modal-close-btn {
            background: var(--ne-editor-icons) no-repeat;
            background-position: -627px -57px;
            font-size: 22px;
            color: #aaa;
            width: 32px;
            height: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            border: none;
            cursor: pointer;
        }
:is(.ne-modal.ne-map-modal .ne-modal-close-btn):hover { color: #333; }
.ne-modal.ne-map-modal .ne-modal-body { padding: 0; flex: 1; display: flex; flex-direction: column; overflow: hidden; }
.ne-modal.ne-map-modal .ne-map-body { display: flex; flex-direction: column; height: 100%; }
.ne-modal.ne-map-modal .ne-map-row-search {
        border-bottom: 1px solid #dddddd;
        }
.ne-modal.ne-map-modal .ne-map-search-box {
            display: flex;
            flex: 1;
            border: none;
            background: #fff;
        }
:is(.ne-modal.ne-map-modal .ne-map-search-box) input {
                flex: 1;
                border: none;
                padding: 12px 0px 12px 17px;
                font-size: 15px;
                background-color: #fafafc;
                color: #444;
            }
:is(:is(.ne-modal.ne-map-modal .ne-map-search-box) input)::placeholder { color: #bbb; }
:is(.ne-modal.ne-map-modal .ne-map-search-box) button {
                background-color: #fafafc;
                border: none;
                cursor: pointer;
                padding: 0 10px;
            }
:is(:is(.ne-modal.ne-map-modal .ne-map-search-box) button):hover { color: var(--primary-color); }
:is(:is(.ne-modal.ne-map-modal .ne-map-search-box) button) .fa-search::before{content:"";background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 32px;height: 32px;background-position: 0 -88px;}
.ne-modal.ne-map-modal .ne-map-canvas-wrapper { flex: 1; position: relative; overflow: hidden; }
.ne-modal.ne-map-modal .ne-map-canvas { width: 100%; height: 100%; background: #e8eaed; }
.ne-modal.ne-map-modal .ne-map-canvas .gm-bundled-control { display: none !important; }
.ne-modal.ne-map-modal .ne-map-canvas .gm-fullscreen-control { display: none !important; }
.ne-modal.ne-map-modal .ne-map-placeholder { height: 100%; display: flex; align-items: center; justify-content: center; color: var(--txt-muted); gap: 10px; }
.ne-modal.ne-map-modal .ne-map-controls { display: none; }
.ne-modal.ne-map-modal .ne-map-type-group {
            position: absolute; top: 14px; left: 14px; z-index: 10;
            display: flex; background: white; border-radius: 6px; box-shadow: 0 1px 4px rgba(0,0,0,0.2); overflow: hidden;
        }
.ne-modal.ne-map-modal .ne-map-zoom-group {
            position: absolute;
            top: 14px;
            right: 14px;
            z-index: 10;
            background: white;
            box-shadow: 0 1px 4px rgba(0,0,0,0.2);
            overflow: hidden;
            border: 1px solid #a4a4a4;
       }
:is(.ne-modal.ne-map-modal .ne-map-zoom-group) button {
                width: 32px; height: 32px; border: none; background: white; font-size: 20px; font-weight: 300; color: #333; cursor: pointer; display: flex; align-items: center; justify-content: center;
            }
:is(:is(.ne-modal.ne-map-modal .ne-map-zoom-group) button):first-child { border-bottom: 0.5px solid #e0e0e0; }
:is(:is(.ne-modal.ne-map-modal .ne-map-zoom-group) button):hover { background: #f5f5f5; }
#neMapZoomIn:is(:is(.ne-modal.ne-map-modal .ne-map-zoom-group) button)::after{content:"";background: var(--ne-editor-icons) no-repeat;background-position: -445px -89px;width: 30px;height: 30px;}
#neMapZoomOut:is(:is(.ne-modal.ne-map-modal .ne-map-zoom-group) button)::after{content:"";background: var(--ne-editor-icons) no-repeat;background-position: -472px -89px;width: 30px;height: 30px;}
.ne-modal.ne-map-modal .ne-map-fullscreen-btn {
            position: absolute;
            bottom: 14px;
            right: 14px;
            z-index: 10;
            background: white;
            box-shadow: 0 1px 4px rgba(0,0,0,0.2);
            width: 32px;
            height: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            color: #555;
            border: 1px solid #a4a4a4;
        }
:is(.ne-modal.ne-map-modal .ne-map-fullscreen-btn):hover { background: #f5f5f5; }
:is(.ne-modal.ne-map-modal .ne-map-fullscreen-btn)::after{content:"";background: var(--ne-editor-icons) no-repeat;background-position: -34px -89px;width: 30px;height: 30px;}
.ne-modal.ne-map-modal .ne-map-type-group {
            display: flex;
            background: white;
            border: 1px solid #a4a4a4;
            border-radius: 3px;
            box-shadow: 0 1px 4px rgba(0,0,0,0.2);
            overflow: hidden;

        }
:is(.ne-modal.ne-map-modal .ne-map-type-group) button:first-of-type { border-right:1px solid #ccc;}
.ne-modal.ne-map-modal .ne-map-type-btn {
            border: none;
            background: white;
            padding: 6px 16px;
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            color: #444;
        }
.active:is(.ne-modal.ne-map-modal .ne-map-type-btn) {background: #fafafc;font-weight: 700;color: #111;}
:is(.ne-modal.ne-map-modal .ne-map-type-btn):hover:not(.active) { background: #f5f5f5; }
.ne-modal.ne-map-modal .ne-map-error { padding: 40px; text-align: center; color: #ef4444; font-size: 14px; }
.ne-modal.ne-map-modal .ne-modal-footer {
            padding: 17px 20px;
            justify-content: center;
            background: #fff;
            border-top: 1px solid #f0f0f0;
            gap: 7px;
        }
.ne-modal.ne-map-modal .btn-confirm {
            padding: 8px 40px;
            background: #eff3ff;
            color: #408be6;
            border: 1px solid #d6e1ff;
            border-radius: 4px;
            font-size: 14px;
            font-weight: 600;
            height: 38px;
        }
.ne-modal.ne-map-modal .btn-cancel {
            padding: 8px 40px;
            background: #f5f5f5;
            color: #888;
            border: 1px solid #e0e0e0;
            border-radius: 4px;
            font-size: 14px;
            height: 38px;
        }
.ne-modal.ne-meme-modal {
        position: fixed;
    }
.ne-modal.ne-meme-modal .ne-modal-content {
            width: 700px; height: 640px; max-width: 95vw; max-height: 95vh;
            border-radius: 16px; box-shadow: 0 8px 40px rgba(0,0,0,0.18);
            overflow: hidden; display: flex; flex-direction: column;
        }
.ne-modal.ne-meme-modal .ne-modal-header {
            display: flex;
            padding: 13px 20px;
            border-bottom: 1px solid #cdcdcd;
            flex-shrink: 0;
            background-color: #fff;
        }
.ne-modal.ne-meme-modal .ne-modal-title { font-size: 20px; font-weight: 800; color: #111; }
.ne-modal.ne-meme-modal .ne-modal-close-btn {
    background: var(--ne-editor-icons) no-repeat;
    background-position: -627px -57px;
    font-size: 22px;
    color: #aaa;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    cursor: pointer;
}
.ne-modal.ne-meme-modal .ne-modal-body {
            padding: 0; display: flex; flex-direction: column;
            flex: 1; overflow: hidden; box-sizing: border-box;
        }
.ne-modal.ne-meme-modal .ne-meme-body { display: flex; flex-direction: column; height: 100%; }
.ne-modal.ne-meme-modal .ne-meme-row-search {
            display: flex;
            border: none;
            background: #fff;
        }
.ne-modal.ne-meme-modal .ne-meme-search-box {
            display: flex;
            flex: 1;
            border-bottom: 1px solid #dfdfdf;

        }
:is(.ne-modal.ne-meme-modal .ne-meme-search-box) input {color: #333;flex: 1;border: none;padding: 12px 0px 12px 17px;font-size: 15px;background-color: #fafafc; }
:is(:is(.ne-modal.ne-meme-modal .ne-meme-search-box) input)::placeholder { color: #bbb; }
:is(.ne-modal.ne-meme-modal .ne-meme-search-box) button {
                background-color: #fafafc;border: none;cursor: pointer;padding: 0 10px;
            }
#neMemeSearchBtn:is(:is(.ne-modal.ne-meme-modal .ne-meme-search-box) button)::before{
                    content: "";
                    background: var(--ne-editor-icons) no-repeat;
                    display: inline-block;
                    width: 32px;
                    height: 32px;
                    background-position: 0 -88px;
                }
.ne-modal .ne-meme-tags-row {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 12px 18px;
            border-bottom: 1px solid #e5e7eb;
            flex-shrink: 0;
            flex-wrap: wrap;
        }
.ne-modal .ne-meme-tags-label {font-size: 15px;color: #000000;white-space: nowrap;font-weight: 700;}
.ne-modal .ne-meme-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.ne-modal .ne-meme-tag {
            background: #eff3ff;
            border: 1px solid #d9e1ff;
            padding: 6px 12px;
            border-radius: 20px;
            font-size: 13px;
            color: #428ce5;
            font-weight: 700;
            cursor: pointer;
        }
.ne-modal .ne-meme-row-tabs {
            display: flex; flex-shrink: 0;
            border-bottom: 1px solid #e5e7eb;
        }
.ne-modal .ne-meme-tab {
            flex: 1;
            padding: 12px 0;
            border: none;
            background: #fff;
            cursor: pointer;
            font-size: 17px;
            font-weight: 500;
            color: #888;
            border-right: 1px solid #e5e7eb;
        }
:is(.ne-modal .ne-meme-tab):last-child { border-right: none; }
.active:is(.ne-modal .ne-meme-tab) {background: #7daaed;color: #fff;font-weight: 700;}
.ne-modal .ne-meme-content { flex: 1; overflow-y: auto; background: #fff; padding: 16px 18px; }
.ne-modal .ne-meme-grid { display: grid; gap: 8px; grid-template-columns: repeat(5, 1fr); }
.ne-modal .ne-meme-grid.recent {grid-template-columns: repeat(5, 1fr);grid-template-rows: repeat(3, 1fr);max-height: none;overflow: hidden;}
.ne-modal .ne-meme-item {
            aspect-ratio: 1;
            border: 2px solid transparent;
            border-radius: 6px;
            overflow: hidden;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            box-sizing: border-box;
        }
:is(.ne-modal .ne-meme-item) img { width: 100%; height: 100%; object-fit: cover; }
.selected:is(.ne-modal .ne-meme-item) {
                border-color: #3d8ae6;
            }
.selected:is(.ne-modal .ne-meme-item)::after {
                content: "";
                position: absolute;
                inset: 0;
                background: rgba(61, 138, 230, 0.15);
                pointer-events: none;
            }
.ne-modal .ne-meme-gif-badge,.ne-modal .ne-meme-video-badge { position: absolute; top: 4px; right: 4px; background: rgba(0,0,0,0.6); color: white; font-size: 10px; padding: 2px 4px; border-radius: 4px; font-weight: bold; }
.ne-modal .ne-emoti-cat-title { font-size: 13px; font-weight: bold; color: var(--txt-muted); margin: 20px 0 10px 0; padding-left: 5px; border-left: 3px solid var(--primary-color); }
.ne-modal .ne-emoti-section:first-child .ne-emoti-cat-title { margin-top: 0; }
.ne-modal .ne-meme-grid-loading,.ne-modal .ne-meme-empty,.ne-modal .ne-meme-error { height: 100%; display: flex; align-items: center; justify-content: center; color: var(--txt-muted); font-size: 14px; }
.ne-series-modal:scope .ne-modal-content { width: 500px; }
:scope .ne-series-label-wrap { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
:scope .ne-series-tooltip-icon {
        display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px;
        background: #94a3b8; color: white; border-radius: 50%; font-size: 10px; cursor: help; position: relative;
    }
:scope .ne-series-tooltip-content {
        visibility: hidden; opacity: 0; position: absolute; top: calc(100% + 10px); left: -20px; width: max-content; white-space: nowrap;
        background: #334155; color: #fff; padding: 12px 16px; border-radius: 6px; font-size: 12px; font-weight: normal; line-height: 1.5;
        z-index: 100;  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); pointer-events: none;
    }
:is(:scope .ne-series-tooltip-content)::after { content: ''; position: absolute; bottom: 100%; left: 24px; border-width: 6px; border-style: solid; border-color: transparent transparent #334155 transparent; }
:is(:scope .ne-series-tooltip-content) ul { margin: 0; padding-left: 16px; list-style-type: disc; }
:is(:scope .ne-series-tooltip-content) li { margin-bottom: 4px; list-style-type: disc; }
:is(:is(:scope .ne-series-tooltip-content) li):last-child { margin-bottom: 0; }
:scope .ne-series-tooltip-icon:hover .ne-series-tooltip-content { visibility: visible; opacity: 1; }
:scope .ne-series-list-box { margin-top: 16px; max-height: 300px; overflow-y: auto; overflow-x: hidden; }
:scope .ne-series-item {
        display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px;
        border: 1px solid var(--border-color); border-radius: 8px; margin-bottom: 8px; cursor: pointer;
    }
:is(:scope .ne-series-item):hover { background: var(--bg-hover); border-color: var(--border-hover); }
.disabled:is(:scope .ne-series-item) { opacity: 0.5; cursor: not-allowed; background: #f8fafc; }
:scope .series-title-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; color: var(--txt-main); }
:scope .grid-ph {
        aspect-ratio: 1.2;
        background: #fafafc;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #bcc5d3;
        font-size: 20px;
    }
:is(:scope .grid-ph) .fa-image::before{content:"";background:var(--ne-editor-icons) no-repeat;display: inline-block;width: 30px;height: 30px;background-position: -665px -61px;opacity: 0.4;}
.image-upload-modal:scope .image-drop-zone {
        position: relative;
    }
.image-upload-modal:scope .image-grid {
        grid-template-columns: repeat(4, 1fr);
        display: grid;
        flex: unset;
        align-items: unset;
        justify-content: unset;
        padding: var(--radius-lg);
    }
.image-upload-modal:scope .empty-grid-msg {
        position: absolute;
        top: 0; left: 0;
        width: 100%; height: 100%;
        display: flex; flex-direction: column;
        align-items: center; justify-content: center;
        pointer-events: none;
    }
:scope .align-section-box {
        background: #f9f9fb;
        border-radius: 8px;
        padding: 10px;
        display: flex;
        flex-direction: column;
        gap: 1px;
    }
:scope .align-check-wrap {
        display: flex;
        flex-direction: column;
        border-radius: 5px;
        padding: 6px 0 0 0;
    }
.image-upload-modal:scope .btn-clear-minimal {
        background: white;
        border: 1px solid #dadada;
        color: #727272;
        padding: 3px 13px 3px 10px;
        border-radius: 5px;
        margin-right: 20px;
        height: 30px;
        box-sizing: border-box;
    }
:is(.image-upload-modal:scope .btn-clear-minimal):hover { 
            border-color: var(--danger-color); 
            color: var(--danger-color);
        }
:is(.image-upload-modal:scope .btn-clear-minimal):hover .ne-svg-icon { fill: currentColor !important; }
:is(.image-upload-modal:scope .btn-clear-minimal) .ne-svg-icon { 
            width: 20px; 
            height: 20px; 
            fill: currentColor !important;
        }
/* Custom Scrollbar Thumb & Drag Overlay (ScrollPlugin) */
.ne-scrollbar-thumb {
    position: absolute;
    right: 0;
    width: 6px;
    background: rgba(0, 0, 0, 0.25);
    border-radius: 4px;
    cursor: pointer;
    z-index: 100;
    opacity: 0; /* Hidden by default */
    pointer-events: none; /* Block interaction by default */
    transition: opacity 0.3s, background 0.2s;
}
.ne-scrollbar-thumb.active {
    opacity: 0.3; /* Visible but faded when scroll is possible */
    pointer-events: auto; /* Enable interaction */
}
.ne-scrollbar-thumb.active.visible,
.ne-scrollbar-thumb.active.dragging,
.ne-scrollbar-thumb.active:hover {
    opacity: 1; /* Fully visible when active/dragging/hovering */
    background: rgba(0, 0, 0, 0.4);
}
.ne-scrollbar-thumb.dragging {
    background: rgba(0, 0, 0, 0.5) !important;
}
/* Horizontal Scrollbar Thumb */
.ne-scrollbar-thumb-x {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 6px;
    background: rgba(0, 0, 0, 0.25);
    border-radius: 4px;
    cursor: pointer;
    z-index: 100;
    opacity: 0; /* Hidden by default */
    pointer-events: none; /* Block interaction by default */
    transition: opacity 0.3s, background 0.2s;
}
.ne-scrollbar-thumb-x.active {
    opacity: 0.3; /* Visible but faded when scroll is possible */
    pointer-events: auto; /* Enable interaction */
}
.ne-scrollbar-thumb-x.active.visible,
.ne-scrollbar-thumb-x.active.dragging,
.ne-scrollbar-thumb-x.active:hover {
    opacity: 1; /* Fully visible when active/dragging/hovering */
    background: rgba(0, 0, 0, 0.4);
}
.ne-scrollbar-thumb-x.dragging {
    background: rgba(0, 0, 0, 0.5) !important;
}
.ne-drag-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: transparent;
    z-index: 99999;
    display: none;
    cursor: grabbing;
}
.ne-drag-overlay.active {
    display: block;
}
/* Placeholder Overlay */
.ne-placeholder-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 8;
    pointer-events: none;
    user-select: none;
}
.ne-placeholder-overlay img {
    max-width: 95%;
    height: auto;
    user-select: none;
    -webkit-user-drag: none;
}
.ne-placeholder-overlay > * {
    max-width: 95%;
    max-height: 95%;
    overflow: auto;
    user-select: none;
}
/* Toast Notifications */
.ne-toast-container {
    position: fixed;
    left: calc(50% - 100px); /* Adjusted for 200px right banner */
    transform: translateX(-50%);
    z-index: 1010;
    display: flex;
    align-items: center;
    gap: 10px;
    pointer-events: none; /* Allow clicks through to window */
}
.ne-toast-container.ne-toast-position-bottom {
    bottom: 30px;
    top: auto;
    flex-direction: column-reverse;
}
.ne-toast-container.ne-toast-position-top {
    top: 60px;
    bottom: auto;
    flex-direction: column;
}
.ne-toast-container.ne-toast-position-top .ne-toast {
    animation: toast-in-top 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.ne-toast {
    background: rgba(15, 23, 42, 0.85); /* Slate 900 with alpha */
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: white;
    padding: 12px 20px;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 500;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    gap: 10px;
    pointer-events: auto; /* Re-enable for the toast itself (though we use window click) */
    animation: toast-in 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: all 0.5s ease;
    max-width: 90vw;
    white-space: nowrap;
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.ne-toast i, .ne-toast .ne-svg-icon {
    font-size: 16px;
    width: 16px;
    height: 16px;
}
.ne-toast.fade-out {
    opacity: 0;
    transform: translateY(20px) scale(0.9);
}
/* Theme Colors */
.ne-toast-success {
    border-left: none;
}
.ne-toast-success i, .ne-toast-success .ne-svg-icon {
    color: #22c55e;
}
.ne-toast-error {
    border-left: none;
}
.ne-toast-error i, .ne-toast-error .ne-svg-icon {
    color: #ef4444;
}
.ne-toast-warning {
    border-left: none;
}
.ne-toast-warning i, .ne-toast-warning .ne-svg-icon {
    color: #f59e0b;
}
.ne-toast-info {
    border-left: none;
}
.ne-toast-info i, .ne-toast-info .ne-svg-icon {
    color: #3b82f6;
}
@keyframes toast-in {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.8);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}
@keyframes toast-in-top {
    from {
        opacity: 0;
        transform: translateY(-20px) scale(0.8);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}
/* Neditor SVG Sprite System Icon Styles */
.ne-svg-icon {
    width: 1em;
    height: 1em;
    display: inline-block;
    vertical-align: middle;
    fill: currentColor;
    stroke: none;
}
svg.ne-svg-star {
    fill: #757575;
    stroke: none;
}
svg.ne-svg-trash {
    fill: #757575;
}
.star-btn:hover svg.ne-svg-star,
.star-btn.active svg.ne-svg-star,
.representative .star-btn svg.ne-svg-star,
.file-action-btn.star:hover svg.ne-svg-star,
.file-item.representative .file-action-btn.star svg.ne-svg-star {
    fill: currentColor;
}
.delete-btn:hover svg.ne-svg-trash,
.delete-btn.active svg.ne-svg-trash,
.file-action-btn.delete:hover svg.ne-svg-trash {
    fill: currentColor;
}
/* Premium Spinner Styles using pure CSS rotation */
.ne-svg-spinner {
    width: 1.2em;
    height: 1.2em;
    display: inline-block;
    vertical-align: middle;
    animation: ne-spin 1s linear infinite;
}
.ne-svg-spinner circle {
    stroke: currentColor;
    stroke-linecap: round;
    animation: ne-spinner-dash 1.5s ease-in-out infinite;
}
@keyframes ne-spin {
    100% { transform: rotate(360deg); }
}
@keyframes ne-spinner-dash {
    0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }
    50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }
    100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }
}
/* Table Toolbar Global Styles (Relocated to body) */
.table-toolbar {
    position: absolute;
    display: none;
    background: white;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15);
    z-index: 9999; /* Higher z-index to stay on top of body elements */
    flex-direction: row;
    gap: 0;
    align-items: stretch;
    user-select: none; /* Prevent text selection during drag */
}
.table-toolbar.active {
        display: flex;
    }
.table-toolbar .ne-toolbar-drag-handle {
        cursor: move;
        padding: 0 10px;
        color: var(--txt-light);
        display: flex;
        align-items: center;
        justify-content: center;
        border-right: 1px solid var(--border-color);
        background: #f8fafc;
        border-top-left-radius: 8px;
        border-bottom-left-radius: 8px;
        transition: background 0.2s;
        display: none;
    }
:is(.table-toolbar .ne-toolbar-drag-handle):hover {
            background: var(--bg-hover);
            color: var(--txt-muted);
        }
.table-toolbar .toolbar-main-content {
        flex: 1;
        display: flex;
        flex-direction: row;
        background-color: #fbfbfb;
        border: 1px solid #a3a3a3;
        border-radius: 5px;
    }
.table-toolbar .toolbar-move {
        cursor: move;
        padding: 0 10px;
        color: var(--txt-light);
        display: flex;
        align-items: center;
        justify-content: center;
        border-right: 1px solid #cccccc;
        background: #f3f3f3;
        border-top-left-radius: 8px;
        border-bottom-left-radius: 8px;
    }
:is(.table-toolbar .toolbar-move) .fas{font-weight:900;}
:is(.table-toolbar .toolbar-move) .fa-grip-vertica::before{content:"\f58e";}
.table-toolbar .toolbar-row {
        display: flex;
        gap: 10px;
        align-items: center;
        border-bottom: 1px solid #ccc;
        padding: 10px;
    }
:is(.table-toolbar .toolbar-row):last-child {
            margin-bottom: 0;
            border-bottom:0;
        }
.table-toolbar button {
        flex-direction: row;
        width: auto;
        height: auto;
        min-width: 0;
        font-size: 12px;
        border: 0;
        background: 0;
        border-radius: 6px;
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 3px;
        color: var(--txt-muted);
        white-space: nowrap;
    }
:is(.table-toolbar button) i {
            font-size: 14px;
            margin-bottom: 0;
        }
:is(.table-toolbar button) span {
            font-size: 12px;
        }
#delColBtn:is(.table-toolbar button) i::before {content:"";background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 20px;height: 20px;background-position: -65px -93px; }
#delRowBtn:is(.table-toolbar button) i::before {content:"";background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 20px;height: 20px;background-position: -93px -93px;}
#mergeCellBtn:is(.table-toolbar button) i::before {content:"";background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 20px;height: 20px;background-position: -122px -93px;}
#splitCellBtn:is(.table-toolbar button) i::before {content:"";background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 20px;height: 20px;background-position: -312px -92px;}
#tableColorBtn:is(.table-toolbar button) i::before {content:"";background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 20px;height: 20px;background-position: -358px -93px;}
.danger:is(.table-toolbar button) {
            color: var(--danger-color);
        }
.danger:is(.table-toolbar button) i::before{content:"";background: var(--ne-editor-icons) no-repeat;display: inline-block;width: 15px;height: 20px;background-position: -743px -65px;}
.table-toolbar .toolbar-input-group {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 12px;
        color: var(--txt-muted-alt);
    }
:is(.table-toolbar .toolbar-input-group) label {
            min-width: 40px;
            color: var(--txt-muted);
        }
:is(.table-toolbar .toolbar-input-group) input {
            width: 60px;
            padding: 1px 5px;
            border: 1px solid #d4d4d4;
            font-size: 12px;
            box-sizing: border-box;
            outline: none;
        }
.table-toolbar .toolbar-divider {
        width: 1px;
        height: 24px;
        background: var(--border-color);
        margin: 0 4px;
    }
/* Color Palette Global Styles (Relocated to body) */
.ne-color-palette {
    position: absolute;
    background: white;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 10px;
    z-index: 10000; /* Higher than toolbar to float above it */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    display: grid;
    grid-template-columns: repeat(10, 20px);
    gap: 4px;
}
.ne-color-item {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    cursor: pointer;
    border: 1px solid rgba(0,0,0,0.05);
}
.ne-color-item:hover {
        box-shadow: 0 0 0 2px var(--primary-color);
        z-index: 1;
    }
.ne-color-other {
    grid-column: span 10;
    margin-top: 8px;
    padding: 6px;
    border: 1px solid var(--border-color);
    background: #f8fafc;
    border-radius: 4px;
    font-size: 12px;
    cursor: pointer;
}
.ne-color-other:hover {
        background: var(--bg-hover);
    }
.ne-color-input { position: absolute; top: 0; left: 0; width: 0; height: 0; opacity: 0; pointer-events: none; z-index: -1; border: none; padding: 0; margin: 0; }
/* Disable custom ScrollPlugin scrollbars for preview-view since we transitioned to thin native browser scrollbars */
#preview-view .ne-scrollbar-thumb,
#preview-view .ne-scrollbar-thumb-x {
    display: none !important;
}
/* Auto height mode border fix */
.editor-container.ne-auto-height .tab-content {
    border-bottom: 1px solid var(--border-color);
}
/* 
 * editor-mo-ui.css
 * Standard Mobile UI Styles for Neditor Modals and Components
 */
/* ==========================================================================
   Mobile Toolbar UI
   ========================================================================== */
.mo-bottom-wrapper {
    position: relative;
    width: 100%;
    z-index: 100;
    display: flex;
    flex-direction: column;
}
.mo-toolbar {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    z-index: 100;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    padding: 2px 8px;
    background: #fbfbfb !important;
    border-top: 1px solid var(--border-color) !important;
    border-bottom: none !important;
    border-left: none !important;
    border-right: none !important;
    border-radius: 0 !important;
    /* Hide scrollbar for a cleaner look while keeping it scrollable */
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}
.mo-toolbar::-webkit-scrollbar {
    display: none;
}
.mo-toolbar .toolbar-row {
    border: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
}
.mo-toolbar .toolbar-group {
    border: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    align-items: center;
}
.mo-toolbar button {
    /* Make buttons slightly larger and square for mobile touch */
    min-width: 44px;
    height: 44px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
}
.mo-toolbar button:hover,
.mo-toolbar button:focus,
.mo-toolbar button:active,
.mo-toolbar button:focus-visible {
    background-color: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}
.mo-toolbar button.active {
    background-color: #e0f2fe !important;
    border-radius: 8px !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}
.mo-toolbar button.active i::before,
.mo-toolbar button.active svg {
    filter: invert(34%) sepia(85%) saturate(3015%) hue-rotate(212deg) brightness(96%) contrast(95%) !important;
}
.mo-toolbar button i,
.mo-toolbar button svg {
    font-size: 1.3rem;
    width: 26px;
    height: 26px;
}
/* User requested: Hide text under icons in mobile toolbar */
.mo-toolbar button span {
    display: none !important;
}
/* Mobile Toolbar Sprite Icons */
.ne-mo-sprite {
    display: inline-block;
    width: 32px !important;
    height: 32px !important;
    background-image: var(--ne-mo-editor-icons);
    background-repeat: no-repeat;
    vertical-align: middle;
}
/* Fix: Prevent PC toolbar sprite from overriding or overlapping mobile sprite */
.mo-toolbar button i.ne-mo-sprite::before {
    display: none !important;
}
.ne-mo-sprite-image { background-position: -10px -9px; }
.ne-mo-sprite-video { background-position: -71px -7px; }
.ne-mo-sprite-emoticon { background-position: -124px -7px; }
.ne-mo-sprite-poll { background-position: -172px -7px; }
.ne-mo-sprite-text { background-position: -221px -7px; }
.ne-mo-sprite-series { background-position: -271px -7px; }
.ne-mo-sprite-setting { background-position: -320px -7px; }
/* Mo Submenu (Text Formatting) */
.mo-submenu {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    z-index: 999;
    background: #fbfbfb;
    border-top: 1px solid var(--border-color);
    border-bottom: none !important;
    border-left: none !important;
    max-height: 60px;
    opacity: 1;
    overflow: hidden;
}
/* Integrated Detail Settings Panel */
.mo-detail-menu {
    position: relative;
    width: 100%;
    background: #ffffff;
    border-top: 1px solid var(--border-color);
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.08);
    max-height: 350px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
}
.mo-detail-menu.hidden {
    display: none !important;
}
.mo-submenu.hidden {
    display: none !important;
}
.mo-submenu-panel {
    display: none;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    padding: 2px 12px;
    width: 100%;
    box-sizing: border-box;
}
.mo-submenu-panel.active {
    display: flex;
}
.mo-submenu-panel button {
    min-width: 36px;
    height: 36px;
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
    background: transparent;
    cursor: pointer;
    color: var(--txt-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    white-space: nowrap;
}
.mo-submenu-panel button.active {
    background-color: var(--bg-hover);
    color: var(--primary-color);
}
.mo-submenu-panel button i {
    font-size: 1.1rem;
}
.mo-submenu-panel button i::before {
    content: "";
    background: var(--ne-editor-icons) no-repeat;
    display: inline-block;
    width: 20px;
    height: 24px;
    background-position: -5px -63px;
}
.mo-submenu-panel button .fa-font::before{background-position-x: -5px;}
.mo-submenu-panel button .fa-fill-drip::before{background-position-x: -35px;}
.mo-submenu-panel button .fa-bold::before{background-position-x: -66px;}
.mo-submenu-panel button .fa-italic::before{background-position-x: -94px;}
.mo-submenu-panel button .fa-underline::before{background-position-x: -124px;}
.mo-submenu-panel button .fa-strikethrough::before{background-position-x: -155px;}
.mo-submenu-panel button .fa-caret-down::before{
    background-position: -608px -69px;
    width: 10px;
    height: 10px;
}
.mo-submenu-panel button .fa-chevron-left::before{
    background-position: -608px -69px;
    width: 10px;
    height: 10px;
    transform: rotate(90deg);
}
/* Dropdown triggers like 15px V or A V */
.mo-dropdown-trigger {
    flex-direction: row !important;
    gap: 4px;
    padding: 0 8px !important;
}
.mo-dropdown-trigger span {
    font-weight: 500;
}
.mo-submenu-panel .color-indicator {
    width: 100%;
    height: 3px;
    margin-top: 2px;
    background-color: transparent;
    border-radius: 2px;
}
/* Horizontal scroll container for sizes/colors */
.mo-scroll-container {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 8px;
    flex: 1;
    -ms-overflow-style: none;
    scrollbar-width: none;
    align-items: center;
}
.mo-scroll-container::-webkit-scrollbar {
    display: none;
}
/* Back button */
.mo-back-btn {
    min-width: 30px !important;
    color: var(--txt-header) !important;
    margin-right: 4px;
}
/* Size Option */
.mo-size-option {
    padding: 0 8px !important;
    font-size: 14px !important;
    color: var(--txt-main) !important;
}
/* Color Circle */
.mo-color-circle {
    min-width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    border: 1px solid rgba(0,0,0,0.1) !important;
    padding: 0 !important;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.05);
    position: relative;
}
.mo-size-option.active {
    font-weight: bold !important;
    color: var(--primary-color) !important;
    background-color: var(--bg-hover) !important;
}
.mo-color-circle.active::after {
    content: '';
    position: absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    width: 6px;
    height: 11px;
    border: solid white;
    border-width: 0 2px 2px 0;
}
.mo-color-circle[data-color="#ffffff"].active::after {
    border-color: black;
}
/* Hide toolbar option support */
.editor-container.ne-toolbar-hidden .toolbar {
    display: none !important;
}
.editor-container.ne-toolbar-hidden .mo-submenu {
    display: none !important; 
}
/* Auto height mode border fix */
.editor-container.ne-auto-height .tab-content {
    border-bottom: 1px solid var(--border-color);
}
.ne-mo-dialog {
    display: none;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: #fff;
    z-index: 1000;
    flex-direction: column;
    transform: none !important;
}
.ne-mo-dialog.active {
    display: flex;
}
.ne-mo-content {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    background: #fff;
    box-sizing: border-box;
}
/* Standard Header */
.ne-mo-header {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 15px;
    background: #fff;
}
.ne-mo-back-btn {
    position: absolute;
    left: 10px;
    background: transparent;
    border: none;
    cursor: pointer;
    margin: 0;
    padding: 0;
    color: #666;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ne-mo-back-btn .ne-svg-icon {
    width: 24px;
    height: 24px;
}
.ne-mo-title {
    text-align: center;
    margin: 0;
    font-size: 16px;
    font-weight: bold;
    color: #333;
    flex: none;
}
.ne-mo-header-right {
    position: absolute;
    right: 15px;
    top: 0;
    bottom: 0;
    display: flex;
    align-items: center;
}
/* Standard Body */
.ne-mo-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow-y: auto !important; /* Children handle scrolling */
    -webkit-overflow-scrolling: touch;
}
/* Standard Footer */
.ne-mo-footer {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 15px;
    background: #fff;
}
/* 실제 모바일 기기 가상키보드 출현 시(뷰포트 높이 520px 이하 & 포커스) 푸터 승차 및 덮침 방지 (PC 테스트 시 영향 없음) */
@media (max-height: 520px) {
    .ne-mo-dialog:focus-within .ne-mo-footer {
        display: none !important;
    }
}
/* Standard UI Components */
.ne-mo-input {
    border: 1px solid #d1d5db;
    border-radius: 4px;
    padding: 8px 12px;
    font-size: 14px;
    color: #333;
    background: #fafafc;
    height: 40px;
    box-sizing: border-box;
}
.ne-mo-input:focus {
    outline: none;
    border-color: #3d8ae6;
}
/* Button Standards */
.ne-mo-footer-btn-group {
    display: flex;
    gap: 8px;
    width: 100%;
}
.ne-mo-footer-btn-group > button {
    flex: 1;
}
.ne-mo-btn-group {
    display: flex;
    justify-content: center;
    gap: 10px;
    width: 100%;
}
.ne-mo-btn-primary,
.ne-mo-btn-secondary {
    min-width: 90px;
    padding: 0 20px;
    height: 36px;
    border-radius: 4px;
    font-size: 13px;
    cursor: pointer;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ne-mo-btn-primary {
    background: #eff4ff;
    color: #3d8ae6;
    border: 1px solid #cce0ff;
}
.ne-mo-btn-secondary {
    background: #fff;
    color: #5a5c5b;
    border: 1px solid #d1d5db;
}
/* Layout Helpers */
.ne-mo-divider {
    margin: 0 15px;
    border-top: 1px solid #dadada;
}
.ne-mo-margin-right-auto {
    margin-right: auto;
}
/* Series Plugin Layouts */
.ne-mo-series-view-main {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}
.ne-mo-series-new-box {
    display: flex;
    padding: 15px;
    gap: 8px;
}
.ne-mo-series-new-box input {
    flex: 1;
}
.ne-mo-series-new-box button {
    min-width: 81px;
    height: 40px;
}
.ne-series-mo-list-box {
    display: flex;
    flex-direction: column;
    padding: 0 15px 15px 15px;
    margin-top: 0;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}
/* Mobile Image Upload Overrides */
.ne-mo-dialog.image-upload-modal .image-upload-sidebar {
    display: none !important;
}
.ne-mo-dialog.image-upload-modal .image-upload-main {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}
/* Mobile Series Tabs */
.ne-mo-dialog .ne-series-tabs-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    border-bottom: 1px solid #dadada;
    margin: 0 0 10px 0;
    padding: 0 15px;
}
.ne-mo-dialog .ne-series-tabs {
    display: flex;
}
.ne-mo-dialog .ne-series-tab {
    padding: 8px 0;
    background: #ffffff;
    width: 100px;
    border: 1px solid #dadada;
    cursor: pointer;
    font-size: 14px;
    color: #64748b;
    margin-bottom: -1px;
    text-align: center;
}
.ne-mo-dialog .ne-series-tab.active {
    color: #fff;
    font-weight: bold;
    background-color: #7daaed;
}
.ne-mo-dialog .ne-series-tab:first-of-type {
    border-right: 0;
}
/* Mobile Video Modal Overrides */
.ne-mo-dialog.ne-video-modal .ne-modal-textarea {
    height: auto !important;
    flex: none;
}
.ne-mo-dialog.ne-video-modal .ne-modal-textarea::placeholder {
    color: #888;
}
.ne-mo-dialog.ne-video-modal .ne-video-preview {
    flex: 1 !important;
    aspect-ratio: auto !important;
    margin: 15px !important;
}
.ne-mo-dialog.ne-video-modal .ne-video-input-wrapper {
    border-top: 1px solid #dbdbdb;
}
.ne-mo-dialog.ne-video-modal .ne-mo-body {
    display: flex;
    flex-direction: column;
}
.ne-mo-dialog.ne-video-modal #ne_video_btn_play::before {
    content: "";
    background: var(--ne-editor-icons) no-repeat;
    background-position: -743px -34px;
    width: 20px;
    height: 20px;
    display: inline-block;
    margin-right: 4px;
}
/* Mobile Series Accordion Item Overrides */
.ne-mo-dialog .ne-series-mo-item-header .series-title-text:hover {
    text-decoration: none !important;
}
.ne-mo-dialog .ne-series-mo-item-wrapper.expanded .series-title-text {
    font-weight: bold;
}
.ne-mo-dialog .ne-series-mo-item-wrapper.expanded .ne-series-post-btn {
    background: #3d8ae6;
    color: #fff;
}
.ne-series-modal .ne-mo-header {
    border-bottom: 1px solid #dadada;
}
.ne-series-modal .ne-mo-footer {
    border-top: 1px solid #dadada;
}
/* Mobile Poll Plugin Styles */
.ne-poll-modal .ne-mo-body {
    background: #fafafa;
}
.ne-mo-header-text-btn {
    background: transparent;
    border: none;
    color: #3d8ae6;
    font-size: 15px;
    font-weight: 500;
    padding: 0 15px;
    cursor: pointer;
    height: 100%;
}
.ne-poll-save-btn {
    background: #eff4ff;
    color: #3d8ae6;
    border: 1px solid #cce0ff;
    border-radius: 16px;
    padding: 0 16px;
    font-size: 13px;
    font-weight: 500;
    height: 32px;
    cursor: pointer;
}
.ne-poll-del-wrap {
    padding: 15px;
    background: #fff;
}
.ne-poll-del-btn-full {
    width: 100%;
    height: 46px;
    background: #fff0f0;
    color: #ef4444;
    border: 1px solid #ffcccc;
    border-radius: 8px;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mo-toolbar button.has-poll,
.mo-toolbar button.has-series {
    position: relative;
}
.mo-toolbar button.has-poll::after,
.mo-toolbar button.has-series::after {
    content: '';
    position: absolute;
    top: 5px;
    right: 5px;
    width: 7px;
    height: 7px;
    background-color: #ef4444;
    border-radius: 50%;
    border: 1.5px solid #fff;
}
.ne-poll-modal .ne-mo-header {
    border-bottom: 1px solid #e5e5e5;
}
.ne-poll-modal .ne-mo-footer {
    border-top: 1px solid #e5e5e5;
    background: #fff;
    display: block;
    padding: 0;
}
.ne-mo-poll-container {
    display: flex;
    flex-direction: column;
}
.ne-poll-section {
    padding: 20px 15px;
}
.ne-poll-title-section {
    background: #fff;
    padding: 20px 15px 15px;
    border-bottom: 1px solid #e5e5e5;
}
.ne-poll-title-input {
    width: 100%;
    border: none !important;
    background: transparent !important;
    font-size: 16px !important;
    padding: 0 !important;
    height: auto !important;
}
.ne-poll-title-input::placeholder {
    color: #999;
}
.ne-poll-options-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.ne-poll-option-item {
    display: flex;
    align-items: center;
    gap: 8px;
}
.ne-poll-option-input {
    flex: 1;
    min-width: 0;
    background: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    padding: 8px 12px !important;
    font-size: 14px !important;
    height: 40px !important;
    box-sizing: border-box !important;
}
.ne-poll-remove-btn {
    width: 40px;
    height: 40px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #666;
    flex-shrink: 0;
}
.ne-poll-remove-btn svg {
    width: 20px;
    height: 20px;
}
.ne-poll-add-wrap {
    display: flex;
    justify-content: center;
    margin-top: 15px;
}
.ne-mo-btn-outline-primary {
    background: #fff;
    color: #3d8ae6;
    border: 1px solid #cce0ff;
    border-radius: 4px;
    padding: 8px 16px;
    font-size: 14px;
    cursor: pointer;
}
.ne-poll-settings {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 20px 15px;
}
.ne-poll-setting-item {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    font-size: 14px;
    color: #333;
}
.ne-poll-setting-item > label {
    width: 115px;
    flex-shrink: 0;
}
.ne-poll-setting-controls {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
}
.ne-checkbox-wrap {
    margin-left: auto;
}
.ne-mo-select {
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 6px 30px 6px 10px;
    font-size: 14px;
    color: #333;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 10px center;
    appearance: none;
    height: 36px;
    box-sizing: border-box;
}
.ne-date-input {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 6px 10px;
    font-size: 14px;
    width: 135px;
    height: 36px;
    box-sizing: border-box;
}
/* Custom Checkbox */
.ne-custom-checkbox {
    appearance: none;
    width: 22px;
    height: 22px;
    border: 1px solid #ccc;
    border-radius: 50%;
    outline: none;
    cursor: pointer;
    position: relative;
    background: #fff;
    margin: 0;
    vertical-align: middle;
}
.ne-custom-checkbox:checked {
    background: #75a8f9;
    border-color: #75a8f9;
}
.ne-custom-checkbox:checked::after {
    content: '';
    position: absolute;
    left: 7px;
    top: 3px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
/* Custom Checkbox for Poll Settings */
.ne-poll-checkbox {
    appearance: none;
    width: 22px;
    height: 22px;
    border: 1px solid #ccc;
    border-radius: 50%;
    outline: none;
    cursor: pointer;
    position: relative;
    background: #fff !important;
    margin: 0;
    vertical-align: middle;
}
.ne-poll-checkbox::after {
    content: '';
    position: absolute;
    left: 7px;
    top: 3px;
    width: 5px;
    height: 10px;
    border: solid #ccc;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.ne-poll-checkbox:checked {
    border-color: #75a8f9;
    background: #75a8f9 !important;
}
.ne-poll-checkbox:checked::after {
    border-color: #fff;
}
/* =========================================================
   Mobile Image Upload Popup
   ========================================================= */
.ne-mo-image-upload-modal .ne-mo-body {
    padding: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.ne-mo-image-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #eee;
    background: #fcfcfc;
    flex-shrink: 0;
}
.ne-mo-image-toolbar button {
    background: none;
    border: none;
    font-size: 14px;
    color: #666;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0;
}
.ne-mo-image-toolbar button svg {
    width: 16px;
    height: 16px;
}
.ne-mo-image-toolbar .ne-mo-image-add-btn {
    color: #333;
    font-weight: bold;
}
.ne-mo-image-list {
    flex: 1;
    overflow-y: auto;
    padding: 0 16px 16px;
}
.ne-mo-image-empty-msg {
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: #888;
    background-color: #f9f9f9;
    border: 2px dashed #ccc;
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
    margin: 16px;
    gap: 10px;
    transition: background-color 0.2s, border-color 0.2s;
}
.ne-mo-image-empty-msg:active {
    background-color: #f0f0f0;
    border-color: #999;
}
.ne-mo-image-empty-msg .ne-empty-icon svg {
    width: 32px;
    height: 32px;
    fill: #aaa;
}
.ne-mo-image-item {
    display: flex;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px dashed #ddd;
    gap: 16px;
    background: #fff;
    transition: opacity 0.2s, background 0.2s;
}
.ne-mo-image-item.dragging {
    opacity: 0.8;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 10;
}
.ne-mo-image-item.placeholder {
    background: #f9f9f9;
    border: 2px dashed #ccc;
    box-sizing: border-box;
    margin: 0;
}
.ne-mo-image-item:last-child {
    border-bottom: none;
}
.ne-mo-image-thumb {
    position: relative;
    width: 55%;
    height: auto;
    aspect-ratio: 16 / 9;
    flex-shrink: 0;
    border-radius: 6px;
    overflow: hidden;
    background: #f7f7f7;
    border: 1px solid #ddd;
    box-sizing: border-box;
}
.ne-mo-image-thumb .image-preview {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.ne-mo-image-thumb .remove-img {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 22px;
    height: 22px;
    background: #fff;
    color: #555;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    padding: 0;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ne-mo-image-thumb .remove-img svg {
    width: 14px;
    height: 14px;
}
.ne-mo-image-controls {
    flex: none;
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-self: flex-end;
}
.ne-mo-btn-control {
    flex: none;
    height: 28px;
    padding: 0 12px;
    border: 1px solid #ddd;
    background: #fff;
    border-radius: 4px;
    color: #3d8ae6;
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}
.ne-mo-btn-control:disabled,
.ne-mo-btn-control.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    background: #f9f9f9;
}
.ne-mo-btn-control svg {
    width: 14px;
    height: 14px;
    fill: #888;
}
.ne-mo-image-order {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    margin-left: auto;
}
.ne-mo-drag-handle {
    color: #bbb;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
    width: 100%;
    height: 100%;
}
.ne-mo-drag-handle svg {
    width: 28px;
    height: 28px;
}
.ne-mo-image-resize-bar {
    display: flex;
    align-items: center;
    border-bottom: 1px solid #e5e5e5;
    height: 40px;
    background: #fff;
}
.ne-mo-image-resize-label {
    width: 45%;
    padding-left: 15px;
    font-size: 13px;
    font-weight: 600;
    color: #333;
    border-right: 1px solid #e5e5e5;
    display: flex;
    align-items: center;
    height: 100%;
    box-sizing: border-box;
}
.ne-mo-image-resize-select-wrap {
    flex: 1;
    height: 100%;
    position: relative;
    display: flex;
    align-items: center;
}
.ne-mo-image-resize-select {
    width: 100%;
    height: 100%;
    border: none;
    padding: 0 35px 0 15px;
    font-size: 13px;
    color: #999;
    appearance: none;
    background: transparent;
    cursor: pointer;
    outline: none;
    z-index: 1;
}
.ne-mo-resize-select-arrow {
    position: absolute;
    right: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    color: #333;
}
.ne-mo-resize-select-arrow svg {
    width: 20px;
    height: 20px;
}
/* ========================================================= */
/* Mobile Image Crop UI (2-Depth)                            */
/* ========================================================= */
.ne-mo-crop-freeze {
    overflow: hidden !important;
}
.ne-mo-crop-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    z-index: 1005;
    display: flex;
    flex-direction: column;
}
.ne-mo-crop-header {
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    background: #000;
    color: #fff;
    flex-shrink: 0;
}
.ne-mo-crop-btn {
    background: none;
    border: none;
    color: #fff;
    font-size: 16px;
    padding: 8px;
    cursor: pointer;
}
.ne-mo-crop-title {
    font-size: 16px;
    font-weight: bold;
}
.ne-mo-crop-body {
    flex: 1;
    position: relative;
    overflow: hidden;
    background: #000;
}
.ne-mo-crop-target {
    position: absolute;
    left: 50%;
    top: 50%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transform: translate(-50%, -50%);
    transform-origin: center center;
}
.ne-mo-crop-mask {
    position: absolute;
    background: rgba(0, 0, 0, 0.5);
    pointer-events: none;
}
.ne-mo-crop-box {
    position: absolute;
    border: 2px solid #ffcc00;
    box-sizing: border-box;
    touch-action: none; /* Prevent browser handling of touch inside crop box */
}
.ne-mo-crop-handle {
    position: absolute;
    width: 30px;
    height: 30px;
    background-color: transparent;
    border-radius: 50%;
    /* Visually small yellow dot, functionally large touch target */
}
.ne-mo-crop-handle::after {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    background-color: #ffcc00;
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.ne-mo-crop-handle.tl { top: -15px; left: -15px; }
.ne-mo-crop-handle.tr { top: -15px; right: -15px; }
.ne-mo-crop-handle.bl { bottom: -15px; left: -15px; }
.ne-mo-crop-handle.br { bottom: -15px; right: -15px; }
.ne-mo-crop-thumbnails {
    height: 70px;
    display: flex;
    align-items: center;
    padding: 0 16px;
    background: #111;
    overflow-x: auto;
    flex-shrink: 0;
    gap: 10px;
    -webkit-overflow-scrolling: touch;
}
.ne-mo-crop-thumb {
    width: 50px;
    height: 50px;
    border-radius: 4px;
    overflow: hidden;
    background: #333;
    flex-shrink: 0;
    opacity: 0.5;
    border: 2px solid transparent;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ne-mo-crop-thumb.active {
    opacity: 1;
    border-color: #ffcc00;
}
.ne-mo-crop-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ne-mo-crop-vid-icon svg {
    width: 20px;
    height: 20px;
    fill: #fff;
}
.ne-mo-crop-footer {
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 32px;
    background: #000;
    flex-shrink: 0;
}
.ne-mo-crop-tool {
    background: none;
    border: none;
    color: #fff;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px;
    cursor: pointer;
}
.ne-mo-crop-tool svg {
    width: 20px;
    height: 20px;
    fill: #fff;
}
.ne-mo-crop-tool.disabled {
    opacity: 0.3;
    pointer-events: none;
}
/* ========================================================= */
/* Mobile Image Floating Overlay                             */
/* ========================================================= */
.ne-mo-image-overlay .star-btn,
.ne-mo-image-overlay .delete-btn {
    position: absolute;
    top: 0;
    width: 32px;
    height: 32px;
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    margin: 0;
}
.ne-mo-image-overlay .star-btn {
    left: 0;
}
.ne-mo-image-overlay .delete-btn {
    right: 0;
}
.ne-mo-image-overlay .ne-image-resize-handle {
    position: absolute;
    bottom: 4px;
    right: 4px;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background-color: rgba(0, 0, 0, 0.6);
    background-image: var(--ne-expand-size-icon);
    background-size: 18px 18px;
    background-repeat: no-repeat;
    background-position: center;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: nwse-resize;
}
.ne-mo-image-overlay .star-btn svg,
.ne-mo-image-overlay .delete-btn svg {
    width: 18px;
    height: 18px;
    fill: #fff;
}
.ne-mo-image-overlay .ne-image-resize-handle svg {
    width: 18px;
    height: 18px;
    color: #fff;
}
/* hover, touch, active 시에도 배경색 유지 (흰색으로 변하는 것 방지) */
.ne-mo-image-overlay .overlay-btn:hover,
.ne-mo-image-overlay .overlay-btn:active,
.ne-mo-image-overlay .overlay-btn.active,
.ne-mo-image-overlay .star-btn:hover,
.ne-mo-image-overlay .star-btn:active,
.ne-mo-image-overlay .star-btn.active,
.ne-mo-image-overlay .delete-btn:hover,
.ne-mo-image-overlay .delete-btn:active {
    background: rgba(0, 0, 0, 0.6) !important;
}
/* 기존 동작처럼 대표 이미지일 때 별 색상을 빨간색으로 변경 */
.ne-mo-image-overlay .star-btn.active svg,
.ne-mo-image-overlay.representative .star-btn svg {
    fill: #ef4444 !important;
}
/* 터치 연쇄 방지용 비활성화 상태 */
.ne-mo-image-overlay.pointer-disabled,
.ne-mo-image-overlay.pointer-disabled * {
    pointer-events: none !important;
}
/* 모바일 300ms 클릭 지연(더블 탭 대기) 제거를 통한 반응성 향상 */
.ne-mo-image-overlay .overlay-btn,
.ne-mo-image-overlay .ne-image-resize-handle,
img.ne-image,
video.ne-video {
    touch-action: manipulation;
}
/* 모바일 토스트 메시지 중앙 정렬 (PC의 좌측 편향 오버라이드) */
.ne-toast-container.ne-mo-toast-container {
    left: 50%;
    transform: translateX(-50%);
}
/* Mobile Meme Modal Overrides */
.ne-mo-dialog.ne-meme-modal .ne-meme-tab {
    font-size: 15px !important;
    padding: 10px 0 !important;
}
.ne-mo-dialog.ne-meme-modal .ne-meme-search-box {
    border-top: 1px solid #dfdfdf;
}
.ne-mo-dialog.ne-meme-modal .ne-meme-tags-label {
    display: none !important;
}
.ne-mo-dialog.ne-meme-modal .ne-meme-grid {
    grid-template-columns: repeat(4, 1fr) !important;
}
.ne-mo-dialog.ne-meme-modal .ne-meme-grid.recent {
    grid-template-columns: repeat(4, 1fr) !important;
}
.ne-mo-dialog.ne-meme-modal .ne-meme-content {
    padding: 0 !important;
}
/* Mobile Meme Header Right Continuous Select Checkbox */
.ne-mo-meme-multi-select-label {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: var(--txt-main);
    cursor: pointer;
    user-select: none;
    padding-right: 4px;
}
.ne-mo-meme-multi-select-label input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--theme-color, #3b82f6);
    cursor: pointer;
}
/* Mobile Series Accordion UI */
.ne-series-mo-item-wrapper {
    border: 2px solid #cbd5e1;
    border-radius: 8px;
    margin-bottom: 8px;
    background: #fff;
    overflow: hidden;
}
.ne-series-mo-item-wrapper.disabled {
    border-width: 1px;
    border-color: var(--border-color);
    opacity: 0.55;
    background: #f8fafc;
}
.ne-series-mo-item-wrapper.disabled .series-title-text {
    font-weight: 400;
}
.ne-series-mo-item-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px;
    cursor: pointer;
}
.ne-series-mo-item-header .series-title-text {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    color: var(--txt-main);
    font-weight: 700;
}
.ne-series-mo-item-header .ne-series-post-btn {
    padding: 4px 10px;
    font-size: 12px;
    background: #fff;
    border: 1px solid #cce0ff;
    border-radius: 4px;
    cursor: pointer;
    white-space: nowrap;
    color: #3d8ae6;
}
.ne-series-mo-accordion-body {
    padding: 0 12px 12px 12px;
    background: #fff;
}
.ne-series-mo-posts-container {
    border: 1px dashed #cbe0ff;
    border-radius: 6px;
    min-height: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 12px;
    margin-bottom: 12px;
    background: #fafcff;
}
.ne-series-mo-posts-container .ne-series-item-empty {
    font-size: 13px;
    color: #64748b;
    text-align: center;
}
.ne-series-mo-posts-container .ne-series-post-item {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border: none;
    border-bottom: 1px solid #f1f5f9;
    border-radius: 0;
    cursor: pointer;
    font-size: 13px;
}
.ne-series-mo-posts-container .ne-series-post-item:last-child {
    border-bottom: none;
}
.ne-series-mo-posts-container .ne-series-post-item .post-title {
    flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-right: 10px;
}
.ne-series-mo-posts-container .ne-series-post-item .post-date {
    color: #94a3b8; font-size: 12px; white-space: nowrap;
}
.ne-series-mo-register-wrap {
    display: flex;
    justify-content: center;
}
.ne-series-mo-register-btn {
    background: #fff;
    border: 1px solid #cce0ff;
    color: #3d8ae6;
    padding: 6px 20px;
    font-size: 13px;
    border-radius: 4px;
    cursor: pointer;
}
/* Mobile Submenu Protection from Selection & Dragging */
.mo-submenu,
.mo-submenu-panel,
.ne-mo-toolbar,
#moSubmenuMain,
#moSubmenuSize,
#moSubmenuColor,
#moTextFormatMenu {
    user-select: none !important;
    -webkit-user-select: none !important;
    -webkit-touch-callout: none !important;
}
/* Mobile Dropdown Trigger & Submenu Button Child Elements Pass-Through */
.mo-dropdown-trigger *,
.mo-submenu-panel button * {
    pointer-events: none !important;
}
/* Mobile Editor Content Padding & Border Reset for Bottom Fixed Toolbar */
.ne-content.is-mobile {
    padding-bottom: 0px;
}
.ne-content.is-mobile,
.editor-container.is-mobile,
.editor-container.is-mobile #editor-view,
.editor-container.is-mobile .tab-content {
    border-bottom: none;
    border-left: none;
    border-right: none;
}