:root{--fs-xs:12px;--fs-sm:13px;--fs-md:16px;--fs-lg:18px;--fs-xl:20px;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-bg:#eff6ff;--accent-border:#bfdbfe;--text:#111827;--text-secondary:#6d7380;--text-muted:#94a3b8;--label:#64748b;--border:#e5e7eb;--border-light:#eef2f7;--border-input:#e2e8f0;--bg-page:#f5f6f8;--bg-card:#fff;--bg-subtle:#f8fafc;--bg-hover:#f1f5f9;--radius:12px;--radius-sm:10px;--radius-pill:999px;--shadow-sm:0 1px 2px #0f172a0d;--shadow-card:0 1px 3px #0000000f;--shadow-lg:0 4px 24px #0f172a1a;--header-h:56px;--sidebar-w:400px;--font:"Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif}@font-face{font-family:Pretendard;src:url(/fonts/Pretendard-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Pretendard;src:url(/fonts/Pretendard-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Pretendard;src:url(/fonts/Pretendard-ExtraBold.woff2)format("woff2");font-weight:800;font-style:normal;font-display:block}@font-face{font-family:Pretendard;src:url(/fonts/Pretendard-Black.woff2)format("woff2");font-weight:900;font-style:normal;font-display:block}@font-face{font-family:Pretendard;src:url(/fonts/PretendardVariable.woff2)format("woff2");font-weight:45 920;font-style:normal;font-display:block}*,:before,:after{box-sizing:border-box}:root{font-family:var(--font);letter-spacing:-.1px;color:var(--text);background:var(--bg-page);font-synthesis:none;text-rendering:geometricprecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.4}html,body{height:100%;overflow:hidden}body{margin:0}#root{height:100%;overflow:hidden}button,input,textarea,select{font-family:inherit}.app{background:var(--bg-page);grid-template-rows:auto minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.app-header{border-bottom:1px solid var(--border-input);background:linear-gradient(#fff 0%,#fafbfc 100%);flex-shrink:0;padding:10px 20px;box-shadow:inset 0 1px #fffc}.app-header__row{align-items:center;gap:10px;min-height:36px;display:flex}.app-header__logo{object-fit:cover;border-radius:8px;flex-shrink:0;width:36px;height:36px;display:block}.app-header h1{letter-spacing:-.03em;color:#0f172a;flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;font-size:17px;font-weight:800;line-height:1.25;display:flex}.app-header__brand{color:#0f172a}.app-header__suffix{color:var(--text-secondary);font-weight:400;font-size:var(--fs-sm)}.app-header__desc{font-size:var(--fs-xs);color:var(--text-muted);margin:4px 0 0 46px;font-weight:400}.app-build-id{opacity:.65;font-size:10px}.app-notice{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:var(--radius-sm);font-size:var(--fs-xs);color:#1e40af;margin:8px 0 0 38px;padding:8px 12px;font-weight:600}.app-layout{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);grid-template-rows:minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.sidebar{background:var(--bg-card);border-right:1px solid var(--border-light);min-height:0;box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.sidebar-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:16px;overflow:hidden auto}.sidebar-actions{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.action-btn{border:1px solid var(--border);background:var(--bg-card);border-radius:var(--radius-pill);min-width:88px;height:34px;font-size:var(--fs-xs);color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);flex:1;padding:0 12px;font-weight:600;transition:background .15s,border-color .15s,transform .1s}.action-btn:hover{background:var(--bg-hover);border-color:#d1d5db}.action-btn:active{transform:scale(.97)}.recent-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);max-height:200px;margin-bottom:16px;overflow-y:auto}.recent-list .empty{font-size:var(--fs-sm);color:var(--text-muted);text-align:center;margin:0;padding:14px}.recent-item{border-bottom:1px solid var(--border-light);background:var(--bg-card);align-items:center;display:flex}.recent-item:last-child{border-bottom:none}.recent-load{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;padding:10px 14px;transition:background .15s}.recent-load:hover{background:var(--bg-hover)}.recent-load strong{font-size:var(--fs-sm);color:var(--text);font-weight:700;display:block}.recent-load small{color:var(--text-muted);font-size:11px}.recent-delete{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:8px 14px;font-size:18px;line-height:1;transition:color .15s}.recent-delete:hover{color:#dc2626}.form-section{margin-bottom:20px}.form-section h3,.template-selector h3,.feature-selector h3{font-size:var(--fs-sm);color:var(--text);letter-spacing:-.02em;border-bottom:none;align-items:center;gap:6px;margin:0 0 12px;padding-bottom:0;font-weight:700;display:flex}.form-section h3:before,.template-selector h3:before,.feature-selector h3:before{content:"";background:var(--accent);border-radius:2px;flex-shrink:0;width:3px;height:14px}.form-grid{gap:10px;display:grid}.form-grid.cols-2{grid-template-columns:1fr 1fr}.form-grid .full-width{grid-column:1/-1}label{font-size:var(--fs-xs);color:var(--label);flex-direction:column;gap:5px;font-weight:600;display:flex}input,textarea,select{border:1px solid var(--border-input);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text);background:var(--bg-card);padding:10px 12px;transition:border-color .15s,box-shadow .15s}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}input::placeholder,textarea::placeholder{color:#cbd5e1}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2563eb1f}.title-suggestions{font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.suggestion-btn{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-card);font-size:var(--fs-xs);color:var(--text-secondary);cursor:pointer;padding:5px 12px;font-weight:600;transition:all .15s}.suggestion-btn:hover{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border)}.template-buttons{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.template-btn{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;box-shadow:var(--shadow-sm);padding:12px 14px;transition:border-color .15s,background .15s,box-shadow .15s}.template-btn:hover{background:var(--bg-subtle);border-color:#d1d5db}.template-btn strong{font-size:var(--fs-sm);color:var(--text);font-weight:700;display:block}.template-btn small{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.template-btn.active{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 1px var(--accent-border)}.template-btn.active strong{color:#1e40af}.template-btn.active small{color:#3b82f6}.feature-selector--embedded{border-top:1px solid var(--border);margin-top:12px;margin-bottom:0;padding-top:12px}.feature-selector__subheading{margin:0;font-size:13px;font-weight:600}.form-hint{color:var(--text-muted);margin:8px 0 0;font-size:11px;line-height:1.4}.feature-selector{margin-bottom:20px}.section-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.warning{color:#dc2626;background:#fef2f2;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600}.section-header .hint{color:var(--text-muted);font-size:11px;font-weight:500}.section-header .hint.warning{color:#dc2626;background:#fef2f2;border-radius:6px;padding:3px 8px;font-weight:600}.feature-group{margin-top:10px}.feature-group:first-of-type{margin-top:6px}.feature-group__label{color:var(--text-muted);letter-spacing:-.01em;margin:0 0 6px;font-size:11px;font-weight:600}.feature-grid{flex-wrap:wrap;gap:6px;display:flex}.feature-chip{border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--fs-xs);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg-card);box-shadow:var(--shadow-sm);align-items:center;padding:7px 12px;font-weight:600;transition:all .15s;display:inline-flex}.feature-chip:hover{background:var(--bg-subtle);border-color:#d1d5db}.feature-chip input{display:none}.feature-chip.selected{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 1px 3px #2563eb4d}.feature-chip.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.kind-selector{flex-direction:column;gap:10px;display:flex}.kind-group{flex-direction:column;gap:6px;display:flex}.kind-label{color:var(--label);font-size:11px;font-weight:600}.kind-buttons{flex-wrap:wrap;gap:6px;display:flex}.kind-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);min-width:60px;font-size:var(--fs-xs);color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-sm);flex:1;padding:8px 10px;font-weight:700;transition:all .15s}.kind-btn:hover{background:var(--bg-subtle);border-color:#d1d5db}.kind-btn.active{background:var(--accent-bg);border-color:var(--accent);color:#1e40af}.export-buttons{border-top:1px solid var(--border-light);grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;padding-top:16px;display:grid}.export-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font-size:var(--fs-sm);color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:6px;padding:12px 10px;font-weight:700;transition:background .15s,border-color .15s,transform .1s;display:flex}.export-btn:hover:not(:disabled){background:var(--bg-hover);border-color:#d1d5db}.export-btn:active:not(:disabled){transform:scale(.98)}.export-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.export-btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);filter:none}.export-btn:disabled{opacity:.5;cursor:not-allowed}.preview-panel{background:var(--bg-page);flex-direction:column;min-width:0;min-height:0;padding:8px 10px;display:flex;overflow:hidden}.preview-toolbar{font-size:var(--fs-sm);color:var(--text);letter-spacing:-.02em;flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:700;display:flex}.zoom-buttons{background:var(--bg-card);border-radius:var(--radius-sm);border:1px solid var(--border);box-shadow:var(--shadow-sm);gap:4px;padding:3px;display:flex}.zoom-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:6px 11px;font-size:11px;font-weight:600;transition:background .15s,color .15s}.zoom-btn:hover{background:var(--bg-hover);color:var(--text)}.zoom-btn.active{background:var(--accent);color:#fff}.preview-container{border-radius:var(--radius);border:1px solid var(--border-light);background:#e8ecf1;flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:6px;display:flex;overflow:auto}.preview-paper{transform-origin:top;box-shadow:var(--shadow-lg);background:#fff;flex-shrink:0;width:210mm;height:297mm;position:relative}.preview-paper.is-editing{box-shadow:0 0 0 2px #3b82f6, var(--shadow-lg)}.preview-paper svg{width:210mm;height:297mm;display:block}.layout-editor{z-index:2;pointer-events:none;position:absolute;inset:0}.layout-editor__hint{color:#fff;letter-spacing:-.02em;white-space:nowrap;pointer-events:auto;z-index:5;background:#0f172ad1;border-radius:999px;align-items:center;gap:8px;padding:5px 10px;font-size:10px;font-weight:600;display:flex;position:absolute;top:2.2%;left:50%;transform:translate(-50%)}.layout-editor__hint-sub{opacity:.72;font-weight:500}.layout-editor__reset{color:#0f172a;cursor:pointer;background:#fff;border:none;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700}.layout-hit{box-sizing:border-box;pointer-events:auto;cursor:grab;touch-action:none;background:#3b82f60f;border:1.5px dashed #3b82f68c;border-radius:4px;position:absolute}.layout-hit:hover,.layout-hit.is-active{background:#3b82f61f;border-style:solid;border-color:#3b82f6}.layout-hit.is-divider{cursor:ns-resize;background:#3b82f61a;border-style:dashed}.layout-hit__label{color:#fff;pointer-events:none;background:#3b82f6;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700;line-height:1.2;position:absolute;top:4px;left:4px}.layout-hit__handle{cursor:ns-resize;touch-action:none;background:#3b82f6;border:2px solid #fff;border-radius:50%;width:14px;height:14px;padding:0;position:absolute;bottom:-6px;right:-6px;box-shadow:0 1px 4px #0f172a59}.layout-hit__meta{color:#fff;background:#0f172ac7;border-radius:4px;align-items:center;gap:6px;padding:2px 6px;font-size:9px;font-weight:700;display:flex;position:absolute;top:4px;right:4px}.layout-hit__meta button{color:#93c5fd;cursor:pointer;background:0 0;border:none;padding:0;font-size:9px;font-weight:700}.layout-edit-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:6px 11px;font-size:11px;font-weight:600}.layout-edit-btn:hover{color:var(--text);background:var(--bg-page)}.layout-edit-btn.is-active{color:#fff;background:#2563eb}.print-only{visibility:hidden;pointer-events:none;z-index:-1;width:0;height:0;position:fixed;top:0;left:-9999px;overflow:hidden}@media (width<=900px){.app-layout{grid-template-rows:minmax(0,42vh) minmax(0,1fr);grid-template-columns:1fr}.preview-panel{grid-row:1;padding:6px 8px}.sidebar{border-right:none;border-top:1px solid var(--border-light);grid-row:2}.app-header__desc,.app-notice{margin-left:0}}@media print{@page{size:210mm 297mm;margin:0}html,body{background:#fff!important;width:210mm!important;height:297mm!important;max-height:297mm!important;margin:0!important;padding:0!important;overflow:hidden!important}#root{display:none!important}.print-only{pointer-events:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;color-adjust:exact;visibility:visible!important;page-break-before:avoid!important;page-break-after:avoid!important;break-before:avoid!important;break-after:avoid!important;width:210mm!important;height:297mm!important;max-height:297mm!important;margin:0!important;padding:0!important;display:block!important;position:static!important;overflow:hidden!important}.print-only svg{page-break-inside:avoid!important;break-inside:avoid!important;width:210mm!important;max-width:none!important;height:297mm!important;max-height:none!important;display:block!important;overflow:hidden!important}}
