:root{font-family:KoPubDotum,KoPub Dotum,-apple-system,BlinkMacSystemFont,sans-serif;color:#142033;background:radial-gradient(circle at 0% 0%,rgba(67,97,238,.08),transparent 28%),radial-gradient(circle at 100% 0%,rgba(0,163,108,.08),transparent 22%),linear-gradient(180deg,#f4f7fb,#ecf1f7 48%,#e8edf4);line-height:1.5;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:100vw;min-height:100vh;color:#142033;overflow:hidden}button,textarea,input{font:inherit}.app-shell{display:flex;flex-direction:column;width:100%;height:100vh;padding:14px;overflow:hidden}.topbar{display:flex;align-items:center;min-height:44px;margin-bottom:14px}.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0;padding:8px 14px;border:1px solid rgba(148,163,184,.24);border-radius:999px;background:#ffffffb3;box-shadow:0 8px 30px #0f172a0f;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#324256;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.eyebrow:before{content:"";width:8px;height:8px;border-radius:999px;background:linear-gradient(135deg,#4f46e5,#0ea5a4);box-shadow:0 0 0 4px #4f46e51a}.workspace{flex:1;display:flex;gap:14px;min-height:0;overflow:hidden}.left-stack{display:flex;flex-direction:column;flex:0 0 30%;gap:14px;min-height:0;min-width:0;overflow:hidden}.preview-panel{flex:1 1 auto;min-width:0;overflow:hidden}.panel-resizer{position:relative;flex:0 0 12px;align-self:stretch;border-radius:999px;background:transparent;cursor:col-resize;transition:transform .12s ease-out}.panel-resizer:before{content:"";position:absolute;top:10px;bottom:10px;left:50%;width:4px;transform:translate(-50%);border-radius:999px;background:linear-gradient(180deg,#94a3b82e,#64748b61,#94a3b82e)}.panel-resizer:hover{transform:scaleX(1.08)}body.is-resizing-panels{cursor:col-resize;-webkit-user-select:none;user-select:none}.editor-panel{flex:1 1 auto;min-height:0;overflow:hidden}.guide-panel{flex:0 1 auto;min-height:180px;max-height:48%}.panel{display:flex;flex-direction:column;min-height:0;border:1px solid rgba(148,163,184,.22);border-radius:28px;background:linear-gradient(180deg,#ffffffe6,#f9fbfddb);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 24px 80px #0f172a14,inset 0 1px #ffffffd9;overflow:hidden}.editor-panel{background:linear-gradient(180deg,#f8fafdf5,#f1f5faeb)}.preview-panel{background:linear-gradient(180deg,#fffffff5,#f7fafceb)}.guide-panel{background:linear-gradient(180deg,#f5f9fcf0,#f0f5fae6)}.panel-header{display:flex;align-items:baseline;justify-content:space-between;padding:14px 18px 11px;border-bottom:1px solid rgba(148,163,184,.14);background:linear-gradient(180deg,#ffffffb8,#ffffff57)}.panel-header h2{margin:0;font-size:15px;font-weight:700;letter-spacing:-.02em;color:#172235}.panel-header span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7a8798}.panel-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid rgba(148,163,184,.16)}.toolbar-button,.toolbar-select{height:30px;padding:0 10px;border:1px solid rgba(148,163,184,.24);border-radius:999px;background:#ffffffeb;color:#334155}.toolbar-button{cursor:pointer}.toolbar-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#475569}.toolbar-toggle input{margin:0}.preview-toolbar{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#516173}.zoom-button{min-width:30px;height:30px;padding:0 10px;border:1px solid rgba(148,163,184,.22);border-radius:999px;background:#fffffff0;color:#213045;cursor:pointer;line-height:1;font-weight:700;box-shadow:0 6px 16px #0f172a0d}.zoom-button:hover{background:#fff;transform:translateY(-1px)}.download-button{height:32px;padding:0 14px;border:1px solid #1d293d;border-radius:999px;background:linear-gradient(180deg,#334155,#1f2937);color:#fff;cursor:pointer;white-space:nowrap;font-weight:700;letter-spacing:-.01em;box-shadow:0 10px 24px #1f293729}.download-button:hover:not(:disabled){background:linear-gradient(180deg,#27364a,#182132);transform:translateY(-1px)}.download-button:disabled{opacity:.45;cursor:default}.editor{position:relative;z-index:1;flex:1;width:100%;border:0;resize:none;padding:24px;background:transparent;color:transparent;caret-color:#0f172a;font-family:KoPubDotum,KoPub Dotum,monospace;font-size:11px;line-height:1;outline:none;overflow:auto;scrollbar-gutter:auto}.editor::selection{background:#94a3b847}.editor-shell{position:relative;flex:1;min-height:0;background:linear-gradient(180deg,#fcfdffcc,#f5f8fce6)}.editor-highlight{position:absolute;inset:0;margin:0;padding:24px;overflow:hidden;pointer-events:none;white-space:pre-wrap;word-break:break-word;font-family:KoPubDotum,KoPub Dotum,monospace;font-size:11px;line-height:1;color:#0f172a}.editor-line{display:block;min-height:11px}.editor-line-error{background:#fee2e2d9;border-radius:6px}.token-comment{color:#94a3b8}.token-directive{color:#2563eb}.token-keyword{color:#0f766e}.token-string{color:#b45309}.token-arrow,.token-operator{color:#7c3aed}.token-bracket{color:#475569}.token-number{color:#be123c}.editor-line-error .token,.editor-line-error{color:#b91c1c}.editor-guide{flex:1;padding:14px 16px 16px;background:linear-gradient(180deg,#f7fafdb8,#f1f6fae6);overflow:auto}.editor-guide-error{background:linear-gradient(180deg,#fef2f2c2,#ffececeb)}.editor-guide-label{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.editor-guide-copy{margin:0;font-size:12px;line-height:1.55;color:#516173}.editor-guide-error .editor-guide-label,.editor-guide-error .editor-guide-copy{color:#991b1b}.editor-guide-error-text{margin:10px 0 0;white-space:pre-wrap;word-break:break-word;font-size:11px;line-height:1.5;color:#8f1f1f}.preview-canvas{flex:1;min-height:0;padding:18px;overflow:auto;background:radial-gradient(circle at top,rgba(255,255,255,.86),transparent 55%),linear-gradient(180deg,#f6f9fce6,#f0f5f9eb)}.monaco-editor .margin-view-overlays .line-numbers{text-align:center!important}.monaco-editor .margin{min-width:20px!important}.monaco-editor .margin-view-overlays .line-numbers{width:18px!important;left:0!important;padding-right:0!important}.preview-footer{display:flex;justify-content:space-between;gap:16px;padding:11px 16px 13px;border-top:1px solid rgba(148,163,184,.14);font-size:11px;color:#6f7d8f;background:#ffffff7a}.mermaid-output,.preview-state{display:grid;place-items:center;min-height:100%;padding:24px;border-radius:22px;background:linear-gradient(180deg,#fffffff0,#f8fafcfa);border:1px solid rgba(148,163,184,.16);box-shadow:inset 0 1px #ffffffd1,0 16px 44px #0f172a0d}.mermaid-scale{transform-origin:center center;transition:transform .12s ease-out}.interactive-preview{position:relative}.preview-selected-target{cursor:pointer}.preview-selected-target :is(rect,path,polygon,circle,ellipse){stroke:#dc2626!important;stroke-width:2px!important}.preview-selected-target rect.label-container,.preview-selected-target .labelBkg{fill:#fee2e2f2!important;stroke:#dc2626!important}.preview-selected-target text,.preview-selected-target tspan,.preview-selected-target foreignObject,.preview-selected-target span{fill:#991b1b!important;color:#991b1b!important;font-weight:700}.preview-modal{position:absolute;z-index:20;width:min(420px,calc(100% - 32px));padding:16px;border:1px solid rgba(148,163,184,.24);border-radius:18px;background:#fffffffa;box-shadow:0 24px 64px #0f172a2e,inset 0 1px #ffffffdb}.preview-modal-title{margin:0 0 10px;font-size:12px;font-weight:700;color:#334155}.preview-textarea{width:100%;min-height:96px;padding:12px 14px;border:1px solid rgba(148,163,184,.3);border-radius:12px;resize:vertical;outline:none;font-family:KoPubDotum,KoPub Dotum,monospace;font-size:12px;line-height:1.4;color:#0f172a;background:#fff;box-shadow:inset 0 1px 2px #0f172a08}.preview-text-editor-actions{display:flex;justify-content:end;gap:8px;margin-top:12px}.preview-edit-button{height:30px;padding:0 12px;border:1px solid #1d293d;border-radius:999px;background:linear-gradient(180deg,#334155,#1f2937);color:#fff;cursor:pointer;font-weight:700;font-size:12px;box-shadow:0 8px 20px #1f293729}.preview-edit-button.secondary{border-color:#94a3b852;background:#fffffff5;color:#334155;box-shadow:none}.mermaid-output svg{max-width:100%;height:auto}.preview-state{color:#475569}.preview-state-error{place-items:start;color:#991b1b;background:#fef2f2cc;border-color:#f871713d}.preview-state-label{margin:0 0 12px;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.preview-state pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.88rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:960px){.app-shell{padding:10px}.topbar{margin-bottom:10px}.workspace{flex-direction:column;min-height:0}.left-stack,.preview-panel{flex:1 1 auto!important}.panel-resizer{display:none}.panel{min-height:min(420px,48vh)}.preview-footer{flex-direction:column}}
