:root{font-family:KoPubDotum,KoPub Dotum,-apple-system,BlinkMacSystemFont,sans-serif;color:#201d18;background:radial-gradient(circle at 12% 10%,rgba(226,139,115,.16),transparent 20%),radial-gradient(circle at 88% 8%,rgba(221,155,38,.12),transparent 18%),radial-gradient(circle at 80% 76%,rgba(152,146,108,.1),transparent 22%),linear-gradient(180deg,#f4efe8,#ede5db 52%,#e8dfd3);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:#201d18;overflow:hidden;background:linear-gradient(transparent 0,transparent calc(100% - 1px),rgba(35,31,24,.04) calc(100% - 1px)),linear-gradient(90deg,transparent 0,transparent calc(100% - 1px),rgba(35,31,24,.04) calc(100% - 1px));background-size:32px 32px}button,textarea,input{font:inherit}.app-shell{display:flex;flex-direction:column;width:100%;height:100vh;padding:20px;overflow:hidden}.center-toast{position:fixed;left:50%;top:50%;z-index:200;transform:translate(-50%,-50%);padding:14px 22px;border:1px solid rgba(87,71,54,.16);border-radius:14px;background:#201d18e6;box-shadow:0 20px 48px #0f172a38;color:#fffaf4;font-size:16px;font-weight:700;letter-spacing:.02em;pointer-events:none}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.topbar-left .toolbar-field{margin-left:99px}.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0;padding:8px 14px;border:1px solid rgba(87,71,54,.14);border-radius:500px;background:#fffaf4d1;box-shadow:0 10px 26px #261e1614;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#5d4d3b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.eyebrow:before{content:"";width:8px;height:8px;border-radius:500px;background:linear-gradient(135deg,#e27867,#dd9b26);box-shadow:0 0 0 4px #e278671f}.topbar-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;min-width:0}.toolbar-field{display:inline-flex;align-items:center;gap:8px;padding:0 10px;height:32px;border:1px solid rgba(87,71,54,.16);border-radius:500px;background:#fffaf4d6;box-shadow:0 10px 22px #261e160f}.toolbar-field span{font-size:11px;font-weight:700;letter-spacing:.04em;color:#7c6a55}.toolbar-field-inline{height:28px;padding:0 8px}.toolbar-field-inline span{font-size:10px}.center-toast.is-error{background:#78201ceb}.topbar-right{position:relative;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.diagram-title-input{height:32px;padding:0 12px;border:1px solid rgba(87,71,54,.22);border-radius:250px;background:#fffaf4eb;font-size:12px;font-weight:600;color:#4a3d2e;min-width:140px}.diagram-title-input:focus{outline:none;border-color:#dd9b26;box-shadow:0 0 0 3px #dd9b2629}.topbar-button{height:32px;padding:0 14px;border:1px solid #1d293d;border-radius:250px;background:linear-gradient(180deg,#334155,#1f2937);color:#fff;cursor:pointer;white-space:nowrap;font-weight:700;font-size:12px;letter-spacing:-.01em;box-shadow:0 10px 24px #1f293729}.topbar-button:hover:not(:disabled){background:linear-gradient(180deg,#27364a,#182132);transform:translateY(-1px)}.topbar-button.is-active{background:linear-gradient(180deg,#0f766e,#115e59);border-color:#0f766e}.topbar-button.ghost{background:#fffaf4e6;border-color:#57473638;color:#5d4d3b;box-shadow:none}.topbar-button.ghost:hover:not(:disabled){background:#fffaf4}.topbar-button:disabled{opacity:.45;cursor:default}.save-status{font-size:11px;font-weight:700;letter-spacing:.02em;color:#9a8a76;white-space:nowrap}.save-status-saving{color:#dd9b26}.save-status-saved{color:#0f766e}.library-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:150;width:300px;max-height:60vh;overflow-y:auto;padding:10px;border:1px solid rgba(87,71,54,.16);border-radius:16px;background:#fffcf8fa;box-shadow:0 24px 56px #261e1638;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.library-header{padding:4px 8px 10px;font-size:12px;font-weight:700;color:#7c6a55;border-bottom:1px solid rgba(87,71,54,.12)}.library-empty{margin:0;padding:18px 8px;text-align:center;font-size:13px;color:#9a8a76}.library-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.library-item{display:flex;align-items:center;gap:6px;border-radius:10px}.library-item.is-active{background:#dd9b261f}.library-item-open{flex:1;min-width:0;text-align:left;padding:9px 10px;border:none;background:transparent;cursor:pointer;font-size:13px;font-weight:600;color:#4a3d2e;border-radius:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-item-open:hover{background:#57473614}.library-item-delete{flex-shrink:0;padding:6px 10px;border:1px solid rgba(120,32,28,.2);background:transparent;color:#9a3a30;border-radius:250px;cursor:pointer;font-size:11px;font-weight:700}.library-item-delete:hover{background:#78201c14}.workspace{flex:1;display:flex;gap:14px;min-height:0;overflow:hidden}.workspace.is-mobile-client{flex-direction:column;min-height:0}.left-stack{display:flex;flex-direction:column;flex:0 0 30%;gap:14px;min-height:0;min-width:0;overflow:hidden}.workspace.is-mobile-client .left-stack{flex:1 1 auto!important}.preview-panel{flex:1 1 auto;min-width:0;overflow:hidden}.workspace.is-mobile-client .preview-panel{flex:1 1 auto!important;min-height:0}.panel-resizer{position:relative;flex:0 0 12px;align-self:stretch;border-radius:500px;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:500px;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%}.workspace.is-mobile-client .guide-panel{min-height:112px;max-height:18vh}.panel{display:flex;flex-direction:column;min-height:0;border:1px solid rgba(148,163,184,.22);border-radius:14px;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}.workspace.is-mobile-client .panel{min-height:min(420px,48vh)}.workspace.is-mobile-client .editor-panel{min-height:34vh}.workspace.is-mobile-client .preview-panel{min-height:38vh}.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:250px;background:#ffffffeb;color:#334155}.toolbar-button{cursor:pointer;box-shadow:0 8px 18px #0f172a0d;font-size:12px}.toolbar-button.is-active,.download-button.is-active{background:linear-gradient(180deg,#0f766e,#115e59);border-color:#0f766e}.toolbar-button:hover:not(:disabled),.download-button.is-active:hover:not(:disabled){transform:translateY(-1px)}.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;flex-wrap:wrap;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:250px;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:250px;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.is-active{box-shadow:0 10px 24px #115e592e}.compare-toggle.is-active{background:linear-gradient(180deg,#0f766e,#115e59);border-color:#0f766e;box-shadow:0 10px 24px #115e592e}.compare-toggle.is-active:hover:not(:disabled){background:linear-gradient(180deg,#0e6a63,#0f5f59)}.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:12px;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:12px;line-height:1;color:#0f172a}.editor-line{display:block;min-height:12px}.editor-line-error{background:#fee2e2d9;border-radius:3px}.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}.guide-action{margin-top:12px;height:30px;padding:0 12px;border:1px solid rgba(153,27,27,.22);border-radius:250px;background:#ffffffe6;color:#991b1b;cursor:pointer;font-size:12px;font-weight:700;box-shadow:0 8px 18px #991b1b0f}.preview-canvas{flex:1;min-height:0;padding:8px;overflow:hidden;background:radial-gradient(circle at top,rgba(255,255,255,.86),transparent 55%),linear-gradient(180deg,#f6f9fce6,#f0f5f9eb);touch-action:none}.preview-compare-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;min-height:100%;overflow:hidden}.preview-compare-pane{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;overflow:hidden}.preview-compare-label{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.preview-compare-pane .mermaid-output{flex:1;min-height:0;overflow:hidden}.mermaid-stage{position:absolute;inset:0;overflow:hidden}.mermaid-pan{display:contents}.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}.workspace.is-mobile-client .preview-footer{flex-direction:column;gap:6px}.workspace.is-mobile-client .hero-title{font-size:24px}.workspace.is-mobile-client .panel-header{padding:10px 12px 8px;align-items:center}.workspace.is-mobile-client .panel-header h2{font-size:13px}.workspace.is-mobile-client .panel-header span{font-size:9px;letter-spacing:.06em}.workspace.is-mobile-client .editor-guide{padding:10px 12px 12px}.workspace.is-mobile-client .editor-guide-copy,.workspace.is-mobile-client .editor-guide-error-text{font-size:10px;line-height:1.45}.workspace.is-mobile-client .preview-toolbar{gap:4px;flex-wrap:nowrap;justify-content:flex-end;font-size:10px}.workspace.is-mobile-client .topbar{flex-direction:column;align-items:stretch}.workspace.is-mobile-client .topbar-tools{justify-content:flex-start}.workspace.is-mobile-client .toolbar-field,.workspace.is-mobile-client .toolbar-button{height:26px;font-size:10px}.workspace.is-mobile-client .toolbar-field-inline{height:24px;padding:0 6px}.workspace.is-mobile-client .download-button,.workspace.is-mobile-client .zoom-button{height:24px;font-size:9px;box-shadow:none}.workspace.is-mobile-client .download-button{padding:0 7px;border-radius:250px}.workspace.is-mobile-client .zoom-button{min-width:20px;padding:0 5px}.workspace.is-mobile-client .preview-toolbar span{white-space:nowrap;flex:0 0 auto}.workspace.is-mobile-client .preview-canvas{padding:6px}.workspace.is-mobile-client .preview-compare-grid{grid-template-columns:1fr}.workspace.is-mobile-client .mermaid-output,.workspace.is-mobile-client .preview-state{padding:16px;border-radius:9px}.mermaid-output,.preview-state{position:relative;display:grid;place-items:center;min-height:100%;padding:10px;border-radius:11px;background:linear-gradient(180deg,#fffffff0,#f8fafcfa);border:1px solid rgba(148,163,184,.16);box-shadow:inset 0 1px #ffffffd1,0 16px 44px #0f172a0d;overflow:hidden}.mermaid-scale{position:absolute;inset:0;margin:0}.interactive-preview{position:relative;cursor:default;-webkit-user-select:none;user-select:none}.interactive-preview *{cursor:inherit}.preview-canvas.is-pointer-down .interactive-preview,.preview-canvas.is-pointer-down .interactive-preview *{cursor:grab}.preview-canvas.is-dragging,.preview-canvas.is-dragging .interactive-preview{cursor:grabbing}.preview-selected-target{cursor:inherit}.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:9px;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:6px;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:250px;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{display:block;width:100%;height:100%;max-width:100%;max-height:100%}.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}}
