/* 캔버스 편집 화면(최고관리자 전용). 방문자 화면에는 실리지 않는다. 내용 모양은 iframe 안 렌더러 출력이 정하고, 이 파일은 바깥 틀만 꾸민다 */
:root{--e-bg:#f3f4f6;--e-panel:#fff;--e-line:#e3e5e8;--e-ink:#1c1f23;--e-mute:#5f6670;--e-sel:#2563eb;--e-sel-2:#93b4f5;--e-hover:#60a5fa;--e-warn:#b45309;--e-err:#b42318;--e-ok:#15803d;--e-guide:#e0398b;--e-r:6px;
  --e-font:'Pretendard',-apple-system,BlinkMacSystemFont,'Malgun Gothic',sans-serif}
*{box-sizing:border-box}
html,body.cve-body{margin:0;height:100%;overflow:hidden;background:var(--e-bg);color:var(--e-ink);font:13px/1.45 var(--e-font);word-break:keep-all}
button,input,select,textarea{font:inherit;color:inherit}
.cve{display:grid;height:100vh;grid-template:"top top top" minmax(48px,auto) "left stage right" 1fr "left lint right" auto/240px 1fr 300px}
.cve-top{grid-area:top;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;padding:7px 10px;background:var(--e-panel);border-bottom:1px solid var(--e-line);min-width:0}
.cve-title{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.cve-sep{width:1px;height:22px;background:var(--e-line);margin:0 4px}
.cve-grow{flex:1}
.cve-top>*{flex-shrink:0}
.cve-top>.cve-title{flex-shrink:1;min-width:40px}
.cve-status{color:var(--e-mute);font-size:12px;white-space:nowrap;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.cve-top>.cve-status{flex-shrink:1}
.cve-status.is-dirty{color:var(--e-warn)}
.cve-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:32px;padding:0 12px;border:1px solid var(--e-line);border-radius:var(--e-r);background:#fff;cursor:pointer;white-space:nowrap}
.cve-btn:hover{background:#f6f7f9}
.cve-btn:disabled{opacity:.45;cursor:default}
.cve-btn.cve-primary{background:var(--e-sel);border-color:var(--e-sel);color:#fff}
.cve-btn.cve-primary:hover{background:#1d4ed8}
.cve-btn.cve-ghost{border-color:transparent;background:transparent;text-decoration:none}
.cve-btn.cve-icon{width:32px;padding:0;font-size:16px}
.cve-btn.is-on{background:#ecfdf3;border-color:#a6e3bd;color:var(--e-ok)}
.cve-seg{display:inline-flex;border:1px solid var(--e-line);border-radius:var(--e-r);overflow:hidden}
.cve-seg button{border:0;background:#fff;padding:0 10px;min-height:30px;cursor:pointer;border-right:1px solid var(--e-line)}
.cve-seg button:last-child{border-right:0}
.cve-seg button[aria-pressed="true"]{background:var(--e-ink);color:#fff}
.cve-zoom{display:inline-flex;align-items:center;gap:2px}
#cve-zoom{min-width:56px}
.cve-menu{position:relative}
.cve-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:50;min-width:170px;padding:6px;background:#fff;border:1px solid var(--e-line);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.12);display:flex;flex-direction:column}
.cve-pop[hidden]{display:none}
.cve-pop button{text-align:left;border:0;background:none;padding:7px 10px;border-radius:5px;cursor:pointer}
.cve-pop button:hover,.cve-pop button:focus-visible{background:#eef3fe}
.cve-pop hr{border:0;border-top:1px solid var(--e-line);margin:4px 0;width:100%}
.cve-left,.cve-right{background:var(--e-panel);overflow:auto;min-height:0}
.cve-left{grid-area:left;border-right:1px solid var(--e-line)}
.cve-right{grid-area:right;border-left:1px solid var(--e-line)}
.cve-panel-h{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--e-panel);border-bottom:1px solid var(--e-line);font-weight:700}
/* 레이어 나무 */
.cve-tree{padding:4px 0 24px}
.cve-ti{display:flex;align-items:center;gap:4px;height:28px;padding-right:6px;cursor:default;user-select:none;border:1px solid transparent}
.cve-ti:hover{background:#f6f7f9}
.cve-ti.is-sel{background:#e8effd}
.cve-ti.is-hid .cve-ti-name{opacity:.45}
.cve-ti:focus-visible{outline:2px solid var(--e-sel);outline-offset:-2px}
.cve-ti.drop-before{border-top-color:var(--e-sel)}
.cve-ti.drop-after{border-bottom-color:var(--e-sel)}
.cve-ti.drop-in{border-color:var(--e-sel);background:#eef3fe}
.cve-ti-tw{width:16px;flex:none;text-align:center;color:var(--e-mute);cursor:pointer}
.cve-ti-k{flex:none;width:18px;height:18px;border-radius:4px;background:#eef0f3;color:var(--e-mute);font-size:10px;display:flex;align-items:center;justify-content:center}
.cve-ti-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cve-ti-meta{flex:none;width:7px;height:7px;border-radius:50%;background:#f59e0b}
.cve-ti-eye{flex:none;border:0;background:none;color:var(--e-mute);cursor:pointer;opacity:0;padding:0 2px}
.cve-ti-lock{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:4px;background:none;color:var(--e-mute);cursor:pointer;opacity:0}
.cve-ti-lock+.cve-ti-eye{margin-left:2px}
.cve-ti:hover .cve-ti-lock,.cve-ti-lock:focus-visible,.cve-ti.is-lock .cve-ti-lock{opacity:1}
.cve-ti.is-lock .cve-ti-lock{color:var(--e-ink)}
.cve-ti.is-lock .cve-ti-name{font-style:italic}
.cve-ti:hover .cve-ti-eye,.cve-ti.is-hid .cve-ti-eye{opacity:1}
/* 무대 */
.cve-stage{grid-area:stage;position:relative;overflow:auto;min-height:0;background:#e9ebee}
.cve-stage.is-pan,.cve-stage.is-pan *{cursor:grab!important}
.cve-canvas{position:relative;margin:32px auto 64px;transform-origin:0 0}
#cve-frame{position:absolute;left:0;top:0;border:0;background:#fff;transform-origin:0 0;box-shadow:0 1px 3px rgba(0,0,0,.08),0 8px 30px rgba(0,0,0,.06)}
.cve-over{position:absolute;inset:0;pointer-events:none}
.cve-box{position:absolute;border:1px solid var(--e-sel);pointer-events:none}
.cve-box.is-hover{border-color:var(--e-hover);border-style:dashed}
.cve-box.is-multi{border-color:var(--e-sel-2)}
.cve-box.is-parent{border:1px dotted #94a3b8}
.cve-box-tag{position:absolute;left:-1px;top:-20px;height:18px;padding:0 6px;background:var(--e-sel);color:#fff;font-size:11px;line-height:18px;border-radius:3px 3px 0 0;white-space:nowrap}
.cve-h{position:absolute;width:11px;height:11px;margin:-6px 0 0 -6px;background:#fff;border:1px solid var(--e-sel);pointer-events:auto;border-radius:2px;touch-action:none}
.cve-h::before{content:"";position:absolute;inset:-7px}
.cve-h[data-h="nw"],.cve-h[data-h="se"]{cursor:nwse-resize}.cve-h[data-h="ne"],.cve-h[data-h="sw"]{cursor:nesw-resize}
.cve-h[data-h="n"],.cve-h[data-h="s"]{cursor:ns-resize}.cve-h[data-h="e"],.cve-h[data-h="w"]{cursor:ew-resize}
.cve-h[data-h="rot"]{border-radius:50%;cursor:grab;background:var(--e-sel)}
.cve-ins{position:absolute;background:var(--e-guide);pointer-events:none}
.cve-size{position:absolute;padding:1px 6px;background:var(--e-sel);color:#fff;font-size:11px;border-radius:3px;white-space:nowrap;pointer-events:none}
.cve-glass{position:fixed;inset:0;z-index:100;cursor:inherit}
/* 속성 */
.cve-props{padding:4px 0 40px}
.cve-props-empty{padding:16px 12px;color:var(--e-mute)}
.cve-grp{border-bottom:1px solid var(--e-line)}
.cve-grp>summary{list-style:none;cursor:pointer;padding:10px 12px;font-weight:700;display:flex;align-items:center;gap:6px}
.cve-grp>summary::-webkit-details-marker{display:none}
.cve-grp>summary::before{content:"";width:0;height:0;border:4px solid transparent;border-left-color:var(--e-mute);transition:transform .15s}
.cve-grp[open]>summary::before{transform:rotate(90deg) translateX(2px)}
.cve-grp-b{padding:0 12px 12px;display:grid;gap:8px}
.cve-f{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:8px}
.cve-f>label,.cve-f>.cve-fl{color:var(--e-mute);font-size:12px}
.cve-f.is-wide{grid-template-columns:1fr}
.cve-f input[type=text],.cve-f input[type=number],.cve-f select,.cve-f textarea{width:100%;min-height:30px;padding:4px 8px;border:1px solid var(--e-line);border-radius:5px;background:#fff}
.cve-f textarea{min-height:64px;resize:vertical}
.cve-f input:focus,.cve-f select:focus,.cve-f textarea:focus{outline:2px solid var(--e-sel-2);outline-offset:0;border-color:var(--e-sel)}
.cve-row{display:flex;gap:6px;align-items:center;min-width:0}
.cve-row>*{min-width:0}
.cve-row input[type=color]{flex:none;width:32px;height:30px;padding:2px;border:1px solid var(--e-line);border-radius:5px;background:#fff}
.cve-pad4{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.cve-note{color:var(--e-mute);font-size:12px;padding:0 12px 10px}
.cve-chip{display:inline-block;padding:1px 6px;border-radius:9px;background:#fff7e6;color:var(--e-warn);font-size:11px}
/* 검사 목록 */
.cve-lint{grid-area:lint;max-height:150px;overflow:auto;background:var(--e-panel);border-top:1px solid var(--e-line)}
.cve-lint .cve-panel-h{padding:6px 12px}
.cve-lint-list{list-style:none;margin:0;padding:0}
.cve-lint-list li{display:flex;gap:8px;padding:5px 12px;border-bottom:1px solid #f1f2f4;cursor:pointer}
.cve-lint-list li:hover{background:#f6f7f9}
.cve-lint-list .lv{flex:none;width:34px;font-size:11px;font-weight:700}
.cve-lint-list .lv-error{color:var(--e-err)}.cve-lint-list .lv-warning{color:var(--e-warn)}.cve-lint-list .lv-info{color:var(--e-mute)}
.cve-lint-list code{color:var(--e-mute);font-size:11px}
/* 대화 상자 */
.cve-dialog{position:fixed;inset:0;z-index:200;background:rgba(15,23,42,.35);display:flex;align-items:center;justify-content:center}
.cve-dialog[hidden]{display:none}
.cve-dialog-box{width:min(640px,92vw);max-height:84vh;overflow:auto;background:#fff;border-radius:12px;padding:20px 22px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.cve-dialog-box h2{margin:0 0 12px;font-size:17px}
.cve-keys{width:100%;border-collapse:collapse;margin-bottom:14px}
.cve-keys th,.cve-keys td{text-align:left;padding:5px 6px;border-bottom:1px solid #f1f2f4;vertical-align:top}
.cve-keys kbd{display:inline-block;padding:0 5px;border:1px solid var(--e-line);border-bottom-width:2px;border-radius:4px;background:#fafafa;font:11px/18px ui-monospace,Consolas,monospace}
.cve-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:300;max-width:80vw;padding:10px 16px;border-radius:8px;background:#111827;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.cve-toast.is-err{background:var(--e-err)}
@media (max-width:1100px){.cve{grid-template-columns:200px 1fr 260px}}
@media (max-width:820px){.cve{grid-template:"top" minmax(48px,auto) "stage" 1fr "right" 40vh "lint" auto/1fr}.cve-left{display:none}.cve-right{border-left:0;border-top:1px solid var(--e-line)}.cve-zoom,.cve-seg{display:none}}
/* 화면 구간 값(3단계): 이 구간에 들어가는 칸은 파란 줄, 덮어쓴 칸은 굵게 + 지우기 단추 */
.cve-f.is-bp{box-shadow:inset 3px 0 0 #93b4f5;padding-left:8px}
.cve-f.is-over{box-shadow:inset 3px 0 0 var(--e-sel)}
.cve-f.is-over>.cve-fl,.cve-f.is-over label{color:var(--e-sel);font-weight:700}
.cve-fl-bp{display:flex;align-items:center;gap:4px}
.cve-reset{border:0;background:none;color:var(--e-sel);cursor:pointer;padding:0 2px;font-size:13px}
.cve-ti.has-bp .cve-ti-name::after{content:" ●";color:var(--e-sel);font-size:9px;vertical-align:middle}
/* 붙기 가이드·같은 간격·드래그 박스 */
.cve-guide{position:absolute;background:var(--e-guide);pointer-events:none}
.cve-gap{position:absolute;background:rgba(224,57,139,.18);pointer-events:none;display:flex;align-items:center;justify-content:center}
.cve-gap span{padding:0 4px;border-radius:3px;background:var(--e-guide);color:#fff;font-size:10px;line-height:15px}
.cve-marq{position:absolute;border:1px solid var(--e-sel);background:rgba(37,99,235,.08);pointer-events:none}
/* 대화 상자(그림 고르기·글 블록) */
.cve-modal{width:min(640px,94vw);max-height:90vh;padding:0;border:0;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.28);display:flex;flex-direction:column}
.cve-modal:not([open]){display:none}
.cve-modal.is-wide{width:min(1100px,96vw)}
.cve-modal::backdrop{background:rgba(15,23,42,.4)}
.cve-modal-h{padding:14px 18px;border-bottom:1px solid var(--e-line);font-size:15px}
.cve-modal-b{padding:14px 18px;overflow:auto;flex:1;display:grid;gap:10px}
.cve-modal-a{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--e-line)}
.cve-modal-a .cve-note{flex:1;padding:0}
.cve-hq-root{min-height:60vh}
.cve-img-acts{flex-wrap:wrap}
.cve-chip-warn{display:inline-block;padding:3px 10px;border-radius:12px;background:#fff7e6;color:var(--e-warn);font-size:12px;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.cve-law{padding:8px 10px;border-radius:8px;background:#fff7e6;color:#7a3e00;font-size:12px}.cve-law ul{margin:4px 0 0;padding-left:18px}.cve-law:empty{display:none}
/* 만들기 도구 막대(팝업 디자인 편집기와 같은 방식, 10/17) */
.cve{grid-template:"top top top top" minmax(48px,auto) "left tools stage right" 1fr "left tools lint right" auto/240px 64px 1fr 300px}
@media (max-width:1100px){.cve{grid-template-columns:200px 60px 1fr 260px}}
.cve-tools{grid-area:tools;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;background:var(--e-panel);border-right:1px solid var(--e-line);overflow:auto}
.cve-tool{display:flex;flex-direction:column;align-items:center;gap:2px;width:52px;padding:7px 2px;border:0;border-radius:10px;background:transparent;color:var(--e-ink);cursor:pointer;font-size:11px;line-height:1.2}
.cve-tool:hover{background:#eef2f7}
.cve-tool[aria-pressed="true"]{background:var(--e-sel);color:#fff}
.cve-tool:focus-visible{outline:2px solid var(--e-sel);outline-offset:2px}
.cve-tools-sep{width:32px;height:1px;background:var(--e-line);margin:6px 0}
/* 쉬운 설정 칸 */
.cve-pmode{display:flex;margin:10px 12px 4px}
.cve-esec{padding:12px 14px;border-bottom:1px solid var(--e-line)}
.cve-esec h4{margin:0 0 10px;font-size:13px}
.cve-erow{display:grid;grid-template-columns:78px 1fr;align-items:center;gap:8px;margin:0 0 9px}
.cve-elab{color:var(--e-mute);font-size:12px}
.cve-erow input[type=text],.cve-erow textarea{width:100%;padding:6px 8px;border:1px solid var(--e-line);border-radius:7px;background:#fff}
.cve-eslide{display:grid;grid-template-columns:1fr 64px;gap:6px;align-items:center}
.cve-eslide input[type=range]{width:100%;accent-color:var(--e-sel)}
.cve-eslide input[type=number],.cve-enum input{width:100%;padding:5px 6px;border:1px solid var(--e-line);border-radius:7px;background:#fff}
.cve-eseg{display:flex;flex-wrap:wrap;gap:4px}
.cve-eseg button{padding:5px 9px;border:1px solid var(--e-line);border-radius:999px;background:#fff;cursor:pointer;font-size:12px}
.cve-eseg button[aria-pressed="true"]{background:var(--e-sel);border-color:var(--e-sel);color:#fff}
.cve-esw{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cve-esw button{width:24px;height:24px;border-radius:50%;border:1px solid rgba(0,0,0,.18);background:var(--c,#fff);cursor:pointer;padding:0}
.cve-esw button[aria-pressed="true"]{outline:2px solid var(--e-sel);outline-offset:2px}
.cve-esw button.is-none{background:linear-gradient(135deg,#fff 45%,#e5484d 45%,#e5484d 55%,#fff 55%)}
.cve-esw button.is-recent{border-style:dashed}
.cve-esw button.cve-esw-drop{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px dashed var(--e-mute);background:var(--e-panel);color:var(--e-ink)}
.cve-esw-pick{display:inline-flex;width:26px;height:26px;border-radius:50%;overflow:hidden;border:1px dashed var(--e-mute);cursor:pointer}
.cve-esw-pick input{width:40px;height:40px;margin:-7px;border:0;padding:0;cursor:pointer}
.cve-egrid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 9px}
.cve-enum{display:grid;grid-template-columns:30px 1fr;align-items:center;gap:4px;font-size:12px;color:var(--e-mute)}
.cve-ebig{width:100%;padding:10px}
.cve-ebp{margin:6px 14px}
.cve-ealign{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:8px 0}
.cve-ealign .cve-btn{padding:6px 4px;font-size:12px}
/* 고른 것의 위치(구역 > 그룹 > 카드 > 제목): 눌러서 위 단계 고르기 */
.cve-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:8px 14px;border-bottom:1px solid var(--e-line);font-size:12px;color:var(--e-mute);background:#f8fafc}
.cve-crumb button{padding:3px 8px;border:1px solid var(--e-line);border-radius:999px;background:#fff;cursor:pointer;font-size:12px}
.cve-crumb button:hover{border-color:var(--e-sel);color:var(--e-sel)}
.cve-crumb b{padding:3px 2px;color:var(--e-ink)}
/* 아이콘 고르기 */
.cve-icons{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin:0 0 10px}
.cve-icons button{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border:1px solid var(--e-line);border-radius:8px;background:#fff;cursor:pointer;color:var(--e-ink);padding:0}
.cve-icons button[aria-pressed="true"]{border-color:var(--e-sel);background:#eef4ff;color:var(--e-sel)}
/* 사진 위치 맞추기·카드 간격 손잡이·안쪽 기준선 */
.cve-box.is-pan{outline:2px dashed #f59e0b;outline-offset:2px}
.cve-gaph{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:#e0328f;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3);pointer-events:auto;cursor:ew-resize;z-index:3}
.cve-gaph.is-v{cursor:ns-resize}
.cve-gaph span{position:absolute;left:50%;top:-24px;transform:translateX(-50%);white-space:nowrap;padding:1px 6px;border-radius:6px;background:#e0328f;color:#fff;font-size:11px}
.cve-guideline{position:absolute;width:0;border-left:1px dashed rgba(14,165,233,.85);pointer-events:none}
.cve-guideline span{position:absolute;top:4px;left:4px;padding:0 4px;border-radius:4px;background:rgba(14,165,233,.9);color:#fff;font-size:10px}
.cve-gw{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--e-mute);white-space:nowrap}
.cve-gw select{padding:3px 4px;border:1px solid var(--e-line);border-radius:6px;background:#fff}
.cve-echeck{display:flex;align-items:center;gap:6px;font-size:12px;margin:4px 0 8px}
/* 검색·AI 연결 점검표 */
.cve-seorow{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:7px 0;border-bottom:1px dashed var(--e-line)}
.cve-seorow b{display:block;font-size:12px}
.cve-seorow small{display:block;color:var(--e-mute);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}
.cve-seoic{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#fde7d6;color:#b45309;font-weight:700;font-size:12px}
.cve-seorow.is-ok .cve-seoic{background:#dcfce7;color:#15803d}
.cve-gw input{width:64px;padding:3px 4px;border:1px solid var(--e-line);border-radius:6px;background:#fff}
.cve-tools-cap{font-size:10px;color:var(--e-mute);margin:2px 0 -2px}
/* 칩 디자인 고르기: 작은 미리보기 + 이름 */
.cve-chipd{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px}
.cve-chipd button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:#1d2939;font:12px/1.3 inherit;cursor:pointer;word-break:keep-all}
.cve-chipd button[aria-pressed="true"]{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.25);color:#1d4ed8;font-weight:700}
.cve-chipd button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
.cve-chipd-pv{display:block;width:56px;height:22px;border-radius:5px;background:#eef1f5;position:relative}
.cve-chipd-pv::before{content:"";position:absolute;left:8px;right:12px;top:9px;height:4px;border-radius:2px;background:#98a2b3}
[data-d="answer-bar"] .cve-chipd-pv{background:none;border-left:3px solid #2563eb;border-radius:0}
[data-d="answer-card"] .cve-chipd-pv{background:#fff;border:1px solid #d0d5dd;box-shadow:0 1px 3px rgba(0,0,0,.12)}
[data-d="answer-accent"] .cve-chipd-pv{background:#2563eb}[data-d="answer-accent"] .cve-chipd-pv::before{background:#fff}
[data-d="answer-plain"] .cve-chipd-pv{background:none}
[data-d^="eeat-"] .cve-chipd-pv{border-radius:999px}
[data-d^="eeat-"] .cve-chipd-pv::before{left:18px}
[data-d^="eeat-"] .cve-chipd-pv::after{content:"";position:absolute;left:5px;top:6px;width:10px;height:10px;border-radius:50%;background:#2563eb}
[data-d="eeat-card"] .cve-chipd-pv{border-radius:5px;background:#fff;border:1px solid #d0d5dd;height:26px}
[data-d="eeat-card"] .cve-chipd-pv::after{width:14px;height:14px;top:5px;background:#98a2b3}
[data-d="eeat-line"] .cve-chipd-pv{background:none}
[data-d="eeat-outline"] .cve-chipd-pv{background:none;border:1px solid #2563eb}
[data-d="eeat-dark"] .cve-chipd-pv{background:#1d2939}[data-d="eeat-dark"] .cve-chipd-pv::before{background:#fff}[data-d="eeat-dark"] .cve-chipd-pv::after{background:#fff}
/* 슬라이드 넘김 단추 프리셋 */
.cve-slp{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin:4px 0 10px}
.cve-slp button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:#1d2939;font:12px/1.3 inherit;cursor:pointer;word-break:keep-all;text-align:center}
.cve-slp button[aria-pressed="true"]{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.25);color:#1d4ed8;font-weight:700}
.cve-slp button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
.cve-slp-pv{display:block;width:100%;padding:4px 0;border-radius:5px;background:#eef1f5;color:#475467;font-size:12px;letter-spacing:1px;white-space:nowrap;overflow:hidden}
[data-d="answer-pop"] .cve-chipd-pv,[data-d="eeat-pop"] .cve-chipd-pv{width:34px;border-radius:999px;background:#fff;border:1px solid #98a2b3}
[data-d="answer-pop"] .cve-chipd-pv::before,[data-d="eeat-pop"] .cve-chipd-pv::before{left:16px;right:6px}
.cve-elabel{font-size:12px;font-weight:700;color:#475467;margin:2px 0 4px}
.cve-faqrow{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-top:1px solid #eaecf0}
.cve-faqhd{display:flex;align-items:center;gap:6px}.cve-faqhd b{flex:1;font-size:13px;color:#344054}
.cve-mini{padding:2px 8px;min-height:28px;font-size:12px}
.cve-faqa{resize:vertical;min-height:64px;font:inherit;line-height:1.5}
[data-d="faq-line"] .cve-chipd-pv{background:none;border-top:1px solid #98a2b3;border-bottom:1px solid #98a2b3;border-radius:0}
[data-d="faq-card"] .cve-chipd-pv{background:#eef1f5}
[data-d="faq-outline"] .cve-chipd-pv{background:#fff;border:1px solid #98a2b3}
[data-d="faq-badge"] .cve-chipd-pv{background:none}[data-d="faq-badge"] .cve-chipd-pv::after{content:"Q";position:absolute;left:2px;top:3px;width:16px;height:16px;border-radius:50%;background:#2563eb;color:#fff;font:700 10px/16px sans-serif;text-align:center}[data-d="faq-badge"] .cve-chipd-pv::before{left:22px}
[data-d="faq-num"] .cve-chipd-pv{background:none}[data-d="faq-num"] .cve-chipd-pv::after{content:"01";position:absolute;left:2px;top:4px;color:#2563eb;font:700 10px/14px sans-serif}[data-d="faq-num"] .cve-chipd-pv::before{left:22px}
[data-d="faq-dark"] .cve-chipd-pv{background:#1d2939}[data-d="faq-dark"] .cve-chipd-pv::before{background:#fff}
.cve-input{width:100%;box-sizing:border-box;padding:7px 9px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;color:#1d2939;font:13px/1.45 inherit}.cve-input:focus{outline:2px solid #2563eb;outline-offset:0;border-color:#2563eb}
.cve-enote{margin:2px 0 6px;font-size:12px;line-height:1.5;color:#667085;word-break:keep-all}
.cve-maskg{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}
.cve-maskg button,.cve-motg button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:#1d2939;font:12px/1.3 inherit;cursor:pointer;word-break:keep-all;text-align:center}
.cve-maskg button[aria-pressed="true"],.cve-motg button[aria-pressed="true"]{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.25);color:#1d4ed8;font-weight:700}
.cve-maskg button:focus-visible,.cve-motg button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
.cve-maskpv{display:block;width:34px;height:34px;background:linear-gradient(135deg,#93c5fd,#6366f1)}
.cve-motg{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:6px}
.cve-motpv{display:block;width:26px;height:16px;border-radius:4px;background:#6366f1}
@media (prefers-reduced-motion:no-preference){
.cve-motg button:hover .cve-motpv{animation:cvemot .9s ease infinite}
.cve-motg [data-m="fade"]:hover .cve-motpv{--ty:0;--tx:0;--s:1}
.cve-motg [data-m="fade_up"]:hover .cve-motpv{--ty:8px}
.cve-motg [data-m="fade_down"]:hover .cve-motpv{--ty:-8px}
.cve-motg [data-m="fade_left"]:hover .cve-motpv{--tx:12px}
.cve-motg [data-m="fade_right"]:hover .cve-motpv{--tx:-12px}
.cve-motg [data-m="zoom"]:hover .cve-motpv{--s:.7}
.cve-motg [data-m="zoom_out"]:hover .cve-motpv{--s:1.3}
.cve-motg [data-m="pop"]:hover .cve-motpv{--s:.5}
.cve-motg [data-m="none"]:hover .cve-motpv{animation:none}
}
@keyframes cvemot{0%{opacity:0;translate:var(--tx,0) var(--ty,0);scale:var(--s,1)}60%,100%{opacity:1;translate:0 0;scale:1}}
.cve-pv{width:96vw;height:94vh;max-width:none;max-height:none;padding:0;border:0;border-radius:12px;background:#e5e7eb;display:flex;flex-direction:column}
.cve-pv:not([open]){display:none}
.cve-pv::backdrop{background:rgba(15,23,42,.55)}
.cve-pv-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;background:#fff;border-bottom:1px solid #d0d5dd}
.cve-pv-bar strong{margin-right:auto;font-size:14px;color:#1d2939}
.cve-pv-stage{flex:1;display:flex;justify-content:center;overflow:auto;padding:12px}
.cve-pv-f{height:100%;min-height:600px;border:0;border-radius:8px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.15);transition:width .2s}
.cve-rh{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border:2px solid #2563eb;border-radius:50%;background:#fff;cursor:pointer;z-index:6;box-shadow:0 0 0 1px #fff}
.cve-rh:hover{background:#2563eb}
.cve-btnp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.cve-btnp>button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px 8px;border:1px solid #e3e6ea;border-radius:8px;background:#f8f9fb;font-size:11px;color:#3b4250;cursor:pointer;min-width:0}
.cve-btnp>button:hover{border-color:#9aa4b2}
.cve-btnp>button[aria-pressed="true"]{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb;background:#eef4ff}
.cve-btnp>button>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cve-btnp-pv{pointer-events:none}
.cve-conn>p.cve-note{display:block;margin:4px 10px 8px;font-size:12px;line-height:1.5;color:#5f6670}
.cve-tbl{display:grid;gap:4px;align-items:center;overflow-x:auto;margin-bottom:8px}
.cve-tbl .cve-input{min-width:0;padding:6px 8px;font-size:12px}
.cve-tbl .cve-input.is-head{font-weight:700;background:#eef1f5}
[data-d="faq-chat"] .cve-chipd-pv{background:#eef1f5}[data-d="faq-chat"] .cve-chipd-pv::before{left:auto;right:3px;width:16px;background:#2563eb;border-radius:6px}
[data-d="faq-soft"] .cve-chipd-pv{background:#eef1f5;border-radius:10px}
[data-d="faq-serif"] .cve-chipd-pv{background:none;border-bottom:1px solid #98a2b3;border-radius:0}[data-d="faq-serif"] .cve-chipd-pv::after{content:"가";position:absolute;left:3px;top:2px;font:400 12px/14px 'Gowun Batang',serif;color:#344054}[data-d="faq-serif"] .cve-chipd-pv::before{left:18px}
[data-d="faq-split"] .cve-chipd-pv{background:none;border-top:1px solid #98a2b3;border-radius:0}[data-d="faq-split"] .cve-chipd-pv::before{right:55%}
[data-d="faq-big"] .cve-chipd-pv{background:none}[data-d="faq-big"] .cve-chipd-pv::after{content:"01";position:absolute;left:1px;top:0;color:#cfd4dc;font:800 15px/20px sans-serif}[data-d="faq-big"] .cve-chipd-pv::before{left:24px}
[data-d="faq-plus"] .cve-chipd-pv{background:none;border-bottom:2px solid #344054;border-radius:0}[data-d="faq-plus"] .cve-chipd-pv::after{content:"+";position:absolute;right:3px;top:0;font:400 14px/18px sans-serif;color:#344054}
[data-d="faq-memo"] .cve-chipd-pv{background:#fbf8f2;border:1px dashed #b9b0a0}
[data-d="faq-mark"] .cve-chipd-pv{background:none}[data-d="faq-mark"] .cve-chipd-pv::before{height:7px;background:#e8dcc4}
/* 단추 줄은 칸이 좁으면 다음 줄로(글자가 겹쳐 깨지던 문제, 10/19) */
.cve-row{flex-wrap:wrap}
.cve-row>.cve-btn{flex:0 0 auto;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.cve-zbar{position:absolute;z-index:8;display:flex;align-items:center;gap:2px;padding:4px;border-radius:10px;background:#1d2939;box-shadow:0 6px 20px rgba(0,0,0,.25);pointer-events:auto;white-space:nowrap}
.cve-zbar button{min-width:30px;height:30px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:#fff;font:600 13px/1 sans-serif;cursor:pointer}
.cve-zbar button:hover,.cve-zbar button:focus-visible{background:rgba(255,255,255,.16);outline:none}
.cve-zbar output{min-width:44px;text-align:center;color:#fff;font:600 12px/1 sans-serif;font-variant-numeric:tabular-nums}
/* 새 등장 움직임 타일 미리보기(10/19): 올리면 그 움직임을 작게 보여 준다 */
@media (prefers-reduced-motion:no-preference){
.cve-motg [data-m="blur"]:hover .cve-motpv,.cve-motg [data-m="blur_up"]:hover .cve-motpv{animation:cvemotb .9s ease infinite}
.cve-motg [data-m="rotate_in"]:hover .cve-motpv{animation:cvemotr .9s ease infinite}
.cve-motg [data-m="reveal"]:hover .cve-motpv{animation:cvemotw 1s ease infinite}
.cve-motg [data-m="rise"]:hover .cve-motpv{animation:cvemotu 1s ease infinite}
.cve-motg [data-m="chars"]:hover .cve-motpv,.cve-motg [data-m="words"]:hover .cve-motpv{animation:cvemotc 1.2s steps(4) infinite}
}
.cve-motg [data-m="chars"] .cve-motpv,.cve-motg [data-m="words"] .cve-motpv{background:linear-gradient(90deg,#6366f1 0 22%,transparent 22% 26%,#6366f1 26% 48%,transparent 48% 52%,#6366f1 52% 74%,transparent 74% 78%,#6366f1 78%)}
@keyframes cvemotb{from{opacity:0;filter:blur(4px)}to{opacity:1;filter:none}}
@keyframes cvemotr{from{opacity:0;rotate:-25deg}to{opacity:1;rotate:0deg}}
@keyframes cvemotw{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes cvemotu{from{clip-path:inset(100% 0 0 0);translate:0 6px}to{clip-path:inset(0 0 0 0);translate:0 0}}
@keyframes cvemotc{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.cve-vpv{position:relative;display:block;width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.62)}
.cve-vpv::after{content:"";position:absolute;left:12px;top:9px;border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent #fff}
.cve-vpv-light{background:#fff;box-shadow:0 0 0 1px #d0d5dd}.cve-vpv-light::after{border-color:transparent transparent transparent #1d1d1f}
.cve-vpv-brand{background:#2563eb}
.cve-vpv-line{background:#98a2b3;box-shadow:inset 0 0 0 3px #fff}
/* 단축키 방식(17-3): 패널 숨기기(포토샵 Tab 대신), 격자, 확대 도구, 도움말의 다른 키 표시 */
.cve.is-nopanels{grid-template:"top" minmax(48px,auto) "stage" 1fr/1fr}
.cve.is-nopanels .cve-left,.cve.is-nopanels .cve-right,.cve.is-nopanels .cve-lint,.cve.is-nopanels .cve-tools{display:none}
.cve-canvas.is-grid .cve-over{background-image:linear-gradient(to right,rgba(37,99,235,.16) 1px,transparent 1px),linear-gradient(to bottom,rgba(37,99,235,.16) 1px,transparent 1px);background-size:var(--cve-grid,40px) var(--cve-grid,40px)}
.cve-stage.is-zoomtool,.cve-stage.is-zoomtool *{cursor:zoom-in}
.cve-keys caption{text-align:left;font-weight:700;padding:12px 0 4px}
.cve-keys tr.is-diff th{box-shadow:inset 3px 0 0 #f59e0b}
.cve-km-diff{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:#fef3c7;color:#78350f;font-size:12px}
.cve-km-pick{display:flex;gap:8px;align-items:center;margin:0 0 4px}
.cve-km-warn{align-self:center;padding:2px 8px;border-radius:999px;background:#fef3c7;color:#78350f;font-size:12px;white-space:nowrap}
/* "완성" 흐름 창 */
.cve-cf{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.cve-cf-step{border:1px solid var(--e-line,#e5e7eb);border-radius:12px;padding:14px 16px}
.cve-cf-step.is-done{border-color:#86efac;background:#f0fdf4}.cve-cf-step.is-skip{opacity:.8}
.cve-cf-h{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.cve-cf-n{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#e5e7eb;font-weight:700;font-size:13px}
.cve-cf-step.is-done .cve-cf-n{background:#16a34a;color:#fff}
.cve-cf-st{margin-left:auto;font-size:12px;color:#4b5563}
.cve-cf-err,.cve-cf-sum{margin:6px 0;padding-left:18px}.cve-cf-err li,.cve-cf-sum li{margin:4px 0}
.cve-linkbtn{background:none;border:0;padding:0;color:#1d4ed8;text-decoration:underline;cursor:pointer;font:inherit;text-align:left}
.cve-cf-langs{display:flex;flex-wrap:wrap;gap:6px}
.cve-cf-lang{padding:2px 10px;border-radius:999px;background:#f3f4f6;font-size:12px}.cve-cf-lang.is-on{background:#dcfce7;color:#14532d}
