@charset "utf-8";
/* =====================================================================
 * LandEditor 뷰어용 콘텐츠 CSS (read-only)
 *  - landeditor-app 번들에서 콘텐츠 요소(image/image-frame/shape/text-box/
 *    formula/note/page-break/page-zone/embedded-object/form-control) 표시 규칙만 추출
 *  - 편집 전용(.land-editor-surface 스코프, 리사이즈핸들, 선택/포커스 상태,
 *    다이얼로그/툴바/크롬 등)은 제거 → 프론트(정적 저장 HTML) 표출 전용
 *  - 선택자가 .editor-* 클래스 기반이라 전역 로드해도 콘텐츠 외 요소엔 영향 없음
 *  - 뷰어 CSS 정식본이 LandEditor 프로젝트에 생기면 이 파일을 대체
 * ===================================================================== */
:root{color:#1c2329;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#d9dde1;font-family:Pretendard,Noto Sans KR,Malgun Gothic,Segoe UI,system-ui,sans-serif}
.editor-formula{color:#23313a;letter-spacing:0;background:#f6f9fb;border:1px solid #b9c6ce;font-family:Cambria Math,STIX Two Math,Times New Roman,serif}
.editor-formula-inline{vertical-align:baseline;border-radius:4px;align-items:center;max-width:100%;padding:1px 6px;font-size:.98em;line-height:1.35;display:inline-flex}
.editor-formula-block{text-align:center;white-space:pre-wrap;border-radius:6px;margin:16px 0;padding:12px 14px;font-size:1.08em;line-height:1.55;display:block;overflow-x:auto}
.editor-form-control{color:#573b00;vertical-align:baseline;background:#fff7e6;border-radius:3px;align-items:center;gap:4px;max-width:100%;padding:0 4px;line-height:1.45;display:inline-flex;box-shadow:inset 0 0 0 1px #e2c36a}
.editor-form-control-checkbox:before,.editor-form-control-radio:before{content:"";box-sizing:border-box;color:#fff;background:#fffdf7;border:1.5px solid #8a6a14;flex:none;justify-content:center;align-items:center;width:.9em;height:.9em;font-size:.78em;font-weight:700;line-height:1;display:inline-flex}
.editor-form-control-checkbox[data-landeditor-control-checked=true]:before{content:"✓";background:#0f766e;border-color:#0f766e}
.editor-form-control-radio:before{border-radius:999px}
.editor-form-control-radio[data-landeditor-control-checked=true]:before{background:#0f766e;border-color:#0f766e;box-shadow:inset 0 0 0 3px #fff}
.editor-form-control-dropdown:after{content:"▾";color:#7a5a00;font-size:.82em}
.editor-page-break{break-after:page;page-break-after:always;border:0;height:24px;margin:20px 0;display:block;position:relative}
.editor-page-break:before{content:"";border-top:1px dashed #8b98a5;position:absolute;top:50%;left:0;right:0}
.editor-note-ref{vertical-align:super;font-size:.75em;line-height:1}
.editor-note-ref sup{font:inherit;vertical-align:baseline}
.editor-note-ref a{color:#005a70;text-decoration:none}
.editor-note{color:#394750;border-top:1px solid #d4dce3;gap:8px;margin:8px 0;padding-top:8px;font-size:.92em;line-height:1.5;display:flex}
.editor-note-label{color:#005a70;min-width:18px;font-weight:700}
.editor-note-meta{color:#687782;flex:none;font-size:.84em}
.editor-note-content img[data-landeditor-note-image]{vertical-align:middle;max-width:100%;margin:4px 4px 4px 0;display:inline-block}
.editor-note-replies{flex:100%;gap:6px;margin-top:2px;display:grid}
.editor-note-reply{border-left:2px solid #c7d2dc;gap:2px;padding-left:8px;display:grid}
.editor-note-reply-meta{color:#687782;font-size:.84em}
.editor-embedded-object{color:#26323b;background:#f8fafc;border:1px solid #cbd5df;align-items:baseline;gap:10px;margin:10px 0 16px;padding:8px 10px;font-size:.92em;line-height:1.5;display:flex}
.editor-embedded-object-label{color:#005a70;flex:none;font-size:.86em;font-weight:700}
.editor-embedded-object-content{min-width:0}
.editor-page-zone{color:#283740;background:#f7fafb;border:1px solid #ccd6dd;align-items:baseline;gap:10px;margin:10px 0 16px;padding:8px 10px;font-size:.94em;line-height:1.5;display:flex}
.editor-page-zone-footer{margin-top:16px}
.editor-page-zone-label{color:#005a70;flex:none;font-size:.86em}
.editor-page-zone-content{min-width:0}
.editor-image{margin:12px 0;display:block}
.editor-image-frame{box-sizing:border-box;outline:none;max-width:100%;line-height:0;display:block;position:relative}
.editor-image-frame.is-center{margin-left:auto;margin-right:auto}
.editor-image-frame.is-right{margin-left:auto}
.editor-image-frame .editor-image{width:100%;height:auto;margin:0}
.editor-text-box,.editor-shape{box-sizing:border-box;color:#17222b;cursor:move;border:2px solid;outline:none;justify-content:center;align-items:center;margin:14px 0;padding:12px;display:flex;position:relative}
.editor-text-box{border-radius:4px;justify-content:flex-start;box-shadow:inset 0 0 0 1px #ffffff8c}
.editor-text-box-content,.editor-shape-content{z-index:1;cursor:text;min-width:1em;position:relative}
.editor-text-box.is-object-moving,.editor-shape.is-object-moving{opacity:.82;outline-offset:6px;outline:2px dashed #00a1a7}
.editor-shape{text-align:center;z-index:var(--object-z-index,20);margin:0;font-weight:700;background:0 0!important;border-color:#0000!important}
.editor-shape:before{content:"";z-index:0;box-sizing:border-box;background:var(--object-line,#30343b);clip-path:var(--shape-path,inset(0 round 4px));border:0;position:absolute;inset:0}
.editor-shape:after{content:"";z-index:0;box-sizing:border-box;background:var(--object-fill,#d1d5db);clip-path:var(--shape-path,inset(0 round 3px));position:absolute;inset:2px}
.editor-shape.has-svg:before,.editor-shape.has-svg:after{display:none!important}
.editor-shape-svg{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}
.editor-shape.is-rectangle:before{border-radius:4px}
.editor-shape.is-rectangle:after{border-radius:2px}
.editor-shape.is-roundedRectangle:before{border-radius:12px}
.editor-shape.is-roundedRectangle:after{border-radius:10px}
.editor-shape.is-ellipse:before,.editor-shape.is-ellipse:after{border-radius:999px}
.editor-shape.is-diamond,.editor-shape.is-flowDecision{--shape-path:polygon(50% 0, 100% 50%, 50% 100%, 0 50%)}
.editor-shape.is-triangle{--shape-path:polygon(50% 0, 100% 100%, 0 100%)}
.editor-shape:is(.is-rightTriangle{--shape-path:polygon(0 0, 100% 100%, 0 100%)}
.editor-shape.is-triangle:after{clip-path:polygon(50% 3px,calc(100% - 3px) calc(100% - 3px),3px calc(100% - 3px));inset:0}
.editor-shape:is(.is-rightTriangle{clip-path:polygon(3px 3px,calc(100% - 3px) calc(100% - 3px),3px calc(100% - 3px));inset:0}
.editor-shape.is-parallelogram,.editor-shape:is(.is-flowData{--shape-path:polygon(18% 0, 100% 0, 82% 100%, 0 100%)}
.editor-shape.is-trapezoid{--shape-path:polygon(18% 0, 82% 0, 100% 100%, 0 100%)}
.editor-shape.is-hexagon,.editor-shape.is-flowPreparation{--shape-path:polygon(18% 0, 82% 0, 100% 50%, 82% 100%, 18% 100%, 0 50%)}
.editor-shape:is(.is-heptagon{--shape-path:polygon(28% 0, 72% 0, 100% 28%, 100% 72%, 72% 100%, 28% 100%, 0 72%, 0 28%)}
.editor-shape:is(.is-octagon{--shape-path:polygon(30% 0, 70% 0, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0 70%, 0 30%)}
.editor-shape:is(.is-pentagon{--shape-path:polygon(50% 0, 100% 38%, 82% 100%, 18% 100%, 0 38%)}
.editor-shape:is(.is-snip1Rectangle{--shape-path:polygon(0 0, 78% 0, 100% 24%, 100% 100%, 0 100%)}
.editor-shape.is-snip2Rectangle{--shape-path:polygon(18% 0, 82% 0, 100% 24%, 100% 100%, 18% 100%, 0 76%, 0 0)}
.editor-shape.is-snipRoundRectangle{--shape-path:polygon(0 0, 78% 0, 100% 24%, 100% 100%, 0 100%)}
.editor-shape:is(.is-plus{--shape-path:polygon(36% 0, 64% 0, 64% 36%, 100% 36%, 100% 64%, 64% 64%, 64% 100%, 36% 100%, 36% 64%, 0 64%, 0 36%, 36% 36%)}
.editor-shape:is(.is-flowDocument{--shape-path:polygon(0 0, 100% 0, 100% 82%, 72% 100%, 40% 82%, 0 100%)}
.editor-shape.is-flowDisplay{--shape-path:polygon(0 0, 82% 0, 100% 50%, 82% 100%, 0 100%)}
.editor-shape:is(.is-rightArrow{--shape-path:polygon(0 25%, 62% 25%, 62% 0, 100% 50%, 62% 100%, 62% 75%, 0 75%)}
.editor-shape.is-leftArrow{--shape-path:polygon(38% 0, 38% 25%, 100% 25%, 100% 75%, 38% 75%, 38% 100%, 0 50%)}
.editor-shape.is-upArrow{--shape-path:polygon(50% 0, 100% 38%, 72% 38%, 72% 100%, 28% 100%, 28% 38%, 0 38%)}
.editor-shape.is-downArrow{--shape-path:polygon(28% 0, 72% 0, 72% 62%, 100% 62%, 50% 100%, 0 62%, 28% 62%)}
.editor-shape.is-leftRightArrow{--shape-path:polygon(0 50%, 25% 0, 25% 28%, 75% 28%, 75% 0, 100% 50%, 75% 100%, 75% 72%, 25% 72%, 25% 100%)}
.editor-shape.is-upDownArrow{--shape-path:polygon(50% 0, 100% 25%, 72% 25%, 72% 75%, 100% 75%, 50% 100%, 0 75%, 28% 75%, 28% 25%, 0 25%)}
.editor-shape:is(.is-quadArrow{--shape-path:polygon(50% 0, 66% 28%, 100% 28%, 78% 50%, 100% 72%, 66% 72%, 50% 100%, 34% 72%, 0 72%, 22% 50%, 0 28%, 34% 28%)}
.editor-shape.is-chevron{--shape-path:polygon(0 0, 66% 0, 100% 50%, 66% 100%, 0 100%, 34% 50%)}
.editor-shape:is(.is-star4{--shape-path:polygon(50% 0, 60% 32%, 94% 18%, 72% 48%, 100% 68%, 64% 68%, 50% 100%, 36% 68%, 0 68%, 28% 48%, 6% 18%, 40% 32%)}
.editor-shape:is(.is-roundedCallout{--shape-path:polygon(0 0, 100% 0, 100% 72%, 62% 72%, 50% 100%, 44% 72%, 0 72%)}
.editor-shape.is-heart{--shape-path:polygon(50% 100%, 12% 62%, 2% 32%, 14% 10%, 36% 8%, 50% 24%, 64% 8%, 86% 10%, 98% 32%, 88% 62%)}
.editor-shape.is-lightningBolt{--shape-path:polygon(55% 0, 18% 54%, 45% 54%, 34% 100%, 82% 38%, 55% 38%)}
.editor-shape:is(.is-moon{--shape-path:polygon(42% 0, 100% 0, 100% 100%, 42% 100%, 70% 70%, 70% 30%)}
.editor-shape:is(.is-wave{--shape-path:ellipse(50% 38% at 50% 50%)}
.editor-shape.is-diamond:before{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.editor-shape.is-triangle:before{clip-path:polygon(50% 0,100% 100%,0 100%)}
.editor-shape.is-parallelogram:before{clip-path:polygon(18% 0,100% 0,82% 100%,0 100%)}
.editor-shape.is-parallelogram:after,.editor-shape:is(.is-flowData{clip-path:polygon(calc(18% + 3px) 3px,calc(100% - 3px) 3px,calc(82% - 3px) calc(100% - 3px),3px calc(100% - 3px));inset:0}
.editor-shape.is-hexagon:before{clip-path:polygon(24% 0,76% 0,100% 50%,76% 100%,24% 100%,0 50%)}
.editor-shape.is-rightArrow:before{clip-path:polygon(0 25%,62% 25%,62% 0,100% 50%,62% 100%,62% 75%,0 75%)}
.editor-shape.is-leftArrow:before{clip-path:polygon(38% 0,38% 25%,100% 25%,100% 75%,38% 75%,38% 100%,0 50%)}
.editor-shape.is-callout:before{clip-path:polygon(0 0,100% 0,100% 72%,62% 72%,50% 100%,44% 72%,0 72%)}
.editor-shape:is(.is-line{border:0;border-top:3px solid var(--object-line,#30343b);background:0 0;height:0;inset:50% 8px auto}
.editor-shape:is(.is-arrowLine{content:"";z-index:1;border-top:7px solid #0000;border-bottom:7px solid #0000;border-left:10px solid var(--object-line,#30343b);width:0;height:0;position:absolute;top:50%;right:6px;transform:translateY(-40%)}
.editor-shape.is-doubleArrowLine:after{content:"";z-index:1;background:linear-gradient(135deg, transparent 0 44%, var(--object-line,#30343b) 45% 55%, transparent 56%) left 8px center / 14px 14px no-repeat, linear-gradient(45deg, transparent 0 44%, var(--object-line,#30343b) 45% 55%, transparent 56%) right 8px center / 14px 14px no-repeat;position:absolute;inset:0}
.editor-shape:is(.is-elbowConnector{border-top:0;border-right:3px solid var(--object-line,#30343b);border-bottom:3px solid var(--object-line,#30343b);height:auto;inset:18% 12% 18% 20%}
.editor-shape:is(.is-curvedConnector{border-top:0;border-right:3px solid var(--object-line,#30343b);border-bottom:3px solid var(--object-line,#30343b);border-radius:0 0 48px;height:auto;inset:16% 14% 18% 16%}
.editor-shape:is(.is-flowProcess{border-radius:4px}
.editor-shape.is-flowDecision:before{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.editor-shape:is(.is-rightTriangle{clip-path:polygon(0 0,100% 100%,0 100%)}
.editor-shape.is-trapezoid:before{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)}
.editor-shape:is(.is-pentagon{clip-path:polygon(50% 0,100% 38%,82% 100%,18% 100%,0 38%)}
.editor-shape:is(.is-heptagon{clip-path:polygon(28% 0,72% 0,100% 28%,100% 72%,72% 100%,28% 100%,0 72%,0 28%)}
.editor-shape:is(.is-octagon{clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%)}
.editor-shape:is(.is-snip1Rectangle{clip-path:polygon(0 0,78% 0,100% 24%,100% 100%,0 100%)}
.editor-shape.is-snip2Rectangle:before{clip-path:polygon(18% 0,82% 0,100% 24%,100% 100%,18% 100%,0 76%,0 0)}
.editor-shape.is-snipRoundRectangle:before{clip-path:polygon(0 0,78% 0,100% 24%,100% 100%,0 100%);border-radius:12px}
.editor-shape:is(.is-plus{clip-path:polygon(36% 0,64% 0,64% 36%,100% 36%,100% 64%,64% 64%,64% 100%,36% 100%,36% 64%,0 64%,0 36%,36% 36%)}
.editor-shape.is-cross:before,.editor-shape.is-cross:after{transform:rotate(45deg)}
.editor-shape:is(.is-line{display:none}
.editor-shape.is-donut:before{background:radial-gradient(ellipse at center, transparent 0 31%, var(--object-line,#30343b) 32% 36%, var(--object-fill,#d1d5db) 37% 92%, var(--object-line,#30343b) 93% 100%);clip-path:none;border-radius:999px}
.editor-shape.is-donut:after{display:none}
.editor-shape.is-noSymbol:before{border:2px solid var(--object-line,#30343b);background:var(--object-fill,#d1d5db);clip-path:none;border-radius:999px}
.editor-shape.is-noSymbol:after{background:var(--object-line,#30343b);clip-path:none;border-radius:999px;height:3px;inset:50% 12% auto;transform:rotate(-35deg)}
.editor-shape:is(.is-bracketPair{display:none}
.editor-shape.is-bracketPair:before{background:linear-gradient(var(--object-line,#30343b) 0 0) left top / 18% 3px no-repeat, linear-gradient(var(--object-line,#30343b) 0 0) left bottom / 18% 3px no-repeat, linear-gradient(var(--object-line,#30343b) 0 0) left center / 3px 100% no-repeat, linear-gradient(var(--object-line,#30343b) 0 0) right top / 18% 3px no-repeat, linear-gradient(var(--object-line,#30343b) 0 0) right bottom / 18% 3px no-repeat, linear-gradient(var(--object-line,#30343b) 0 0) right center / 3px 100% no-repeat;clip-path:none;border:0;inset:0}
.editor-shape.is-bracePair:before{background:var(--object-line,#30343b);clip-path:none;border:0;inset:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 64'%3E%3Cpath d='M42 4c-18 0-18 16-18 24 0 6-5 6-12 6 7 0 12 0 12 6 0 8 0 20 18 20' fill='none' stroke='black' stroke-width='7' stroke-linecap='round'/%3E%3Cpath d='M86 4c18 0 18 16 18 24 0 6 5 6 12 6-7 0-12 0-12 6 0 8 0 20-18 20' fill='none' stroke='black' stroke-width='7' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 64'%3E%3Cpath d='M42 4c-18 0-18 16-18 24 0 6-5 6-12 6 7 0 12 0 12 6 0 8 0 20 18 20' fill='none' stroke='black' stroke-width='7' stroke-linecap='round'/%3E%3Cpath d='M86 4c18 0 18 16 18 24 0 6 5 6 12 6-7 0-12 0-12 6 0 8 0 20-18 20' fill='none' stroke='black' stroke-width='7' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat}
.editor-shape:is(.is-flowTerminator{border-radius:999px}
.editor-shape.is-flowDelay:after{border-radius:0 999px 999px 0}
.editor-shape:is(.is-cloud{border-radius:50% 45% 48% 42%/58% 52% 44% 48%}
.editor-shape:is(.is-flowDocument{clip-path:polygon(0 0,100% 0,100% 82%,72% 100%,40% 82%,0 100%)}
.editor-shape:is(.is-flowData{clip-path:polygon(18% 0,100% 0,82% 100%,0 100%)}
.editor-shape.is-flowPreparation:before{clip-path:polygon(18% 0,82% 0,100% 50%,82% 100%,18% 100%,0 50%)}
.editor-shape.is-flowDisplay:before{clip-path:polygon(0 0,82% 0,100% 50%,82% 100%,0 100%)}
.editor-shape.is-flowDelay:before{border-radius:0 999px 999px 0}
.editor-shape:is(.is-rightArrow{clip-path:polygon(0 25%,62% 25%,62% 0,100% 50%,62% 100%,62% 75%,0 75%)}
.editor-shape.is-upArrow:before{clip-path:polygon(50% 0,100% 38%,72% 38%,72% 100%,28% 100%,28% 38%,0 38%)}
.editor-shape.is-downArrow:before{clip-path:polygon(28% 0,72% 0,72% 62%,100% 62%,50% 100%,0 62%,28% 62%)}
.editor-shape.is-leftRightArrow:before{clip-path:polygon(0 50%,25% 0,25% 28%,75% 28%,75% 0,100% 50%,75% 100%,75% 72%,25% 72%,25% 100%)}
.editor-shape.is-upDownArrow:before{clip-path:polygon(50% 0,100% 25%,72% 25%,72% 75%,100% 75%,50% 100%,0 75%,28% 75%,28% 25%,0 25%)}
.editor-shape:is(.is-quadArrow{clip-path:polygon(50% 0,66% 28%,100% 28%,78% 50%,100% 72%,66% 72%,50% 100%,34% 72%,0 72%,22% 50%,0 28%,34% 28%)}
.editor-shape.is-chevron:before{clip-path:polygon(0 0,66% 0,100% 50%,66% 100%,0 100%,34% 50%)}
.editor-shape:is(.is-star4{clip-path:polygon(50% 0,60% 32%,94% 18%,72% 48%,100% 68%,64% 68%,50% 100%,36% 68%,0 68%,28% 48%,6% 18%,40% 32%)}
.editor-shape:is(.is-roundedCallout{clip-path:polygon(0 0,100% 0,100% 72%,62% 72%,50% 100%,44% 72%,0 72%)}
.editor-shape.is-heart:before{clip-path:polygon(50% 100%,12% 62%,2% 32%,14% 10%,36% 8%,50% 24%,64% 8%,86% 10%,98% 32%,88% 62%)}
.editor-shape.is-lightningBolt:before{clip-path:polygon(55% 0,18% 54%,45% 54%,34% 100%,82% 38%,55% 38%)}
.editor-shape:is(.is-moon{clip-path:polygon(42% 0,100% 0,100% 100%,42% 100%,70% 70%,70% 30%);border-radius:999px}
.editor-shape:is(.is-wave{border-radius:48% 52% 42% 58%/58% 32% 68% 42%}