.editor-panel{border-right:1px solid #e0e0e0;flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.editor-header{background:#f8f8f8;border-bottom:1px solid #e0e0e0;flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.editor-header span{color:#555;margin-right:4px;font-size:13px;font-weight:600}.editor-body{flex:1;position:relative;overflow:hidden}.editor-body .cm-editor{height:100%}.editor-body .cm-scroller{height:100%;overflow:auto}.editor-footer{background:#fafafa;border-top:1px solid #e0e0e0;flex-shrink:0;max-height:160px;font-size:12px;overflow-y:auto}.validation-valid{color:#2d8a4e;padding:6px 12px;font-weight:500}.validation-errors{padding:4px 0}.validation-error-item{color:#c0392b;padding:4px 12px;line-height:1.4}.validation-error-item .error-path{font-weight:600}.toggle-btn{cursor:pointer;color:#333;background:#fff;border:1px solid #ccc;border-radius:4px;padding:3px 10px;font-size:12px;transition:background .1s,border-color .1s}.toggle-btn.active{color:#fff;background:#1a6bbf;border-color:#1a6bbf}.toggle-btn:not(.active):hover{background:#f0f0f0}
.preview-panel{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.preview-header{background:#f8f8f8;border-bottom:1px solid #e0e0e0;flex-shrink:0;align-items:center;gap:16px;padding:8px 12px;display:flex}.preview-header-group{align-items:center;gap:6px;display:flex}.preview-header-group span{color:#555;margin-right:2px;font-size:13px;font-weight:600}.preview-body{flex:1;position:relative;overflow:hidden}.preview-iframe{border:none;width:100%;height:100%}.preview-raw{background:#fafafa;width:100%;height:100%;padding:16px;overflow:auto}.preview-raw code{white-space:pre-wrap;word-break:break-all;color:#333;font-family:Menlo,Monaco,Courier New,monospace;font-size:12px;display:block}.preview-markdown{width:100%;height:100%;padding:24px 32px;line-height:1.6;overflow:auto}.preview-markdown h1,.preview-markdown h2,.preview-markdown h3,.preview-markdown h4{margin-top:1.2em;margin-bottom:.4em;font-weight:600}.preview-markdown p{margin-bottom:.8em}.preview-markdown code{background:#f0f0f0;border-radius:3px;padding:1px 4px;font-family:Menlo,Monaco,Courier New,monospace;font-size:12px}.preview-markdown pre{background:#f4f4f4;border-radius:6px;margin-bottom:1em;padding:12px 16px;overflow-x:auto}.preview-markdown pre code{background:0 0;padding:0}.preview-markdown table{border-collapse:collapse;width:100%;margin-bottom:1em}.preview-markdown th,.preview-markdown td{text-align:left;border:1px solid #ddd;padding:6px 12px}.preview-markdown th{background:#f0f0f0;font-weight:600}.preview-error{color:#c0392b;padding:16px;font-size:13px}.toggle-btn{cursor:pointer;color:#333;background:#fff;border:1px solid #ccc;border-radius:4px;padding:3px 10px;font-size:12px;transition:background .1s,border-color .1s}.toggle-btn.active{color:#fff;background:#1a6bbf;border-color:#1a6bbf}.toggle-btn:not(.active):hover{background:#f0f0f0}
.editor-route{background:#fff;flex-direction:column;height:100vh;display:flex}.app{flex-direction:column;flex:1;min-height:0;display:flex}.editor-title-bar{background:#fafcff;border-bottom:1px solid #e0e0e0;justify-content:center;align-items:center;gap:10px;padding:10px 14px;display:flex}.editor-title-bar h1{color:var(--muted);letter-spacing:.12em;text-align:center;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84rem;font-weight:700;text-decoration:none}.panels{flex-direction:row;flex:1;display:flex;overflow:hidden}.panel{flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}.panels-divider{cursor:col-resize;-webkit-user-select:none;user-select:none;background:#d0d0d0;flex:0 0 4px;transition:background-color .15s}.panels-divider:hover{background:#999}.panels-divider:active{background:#666}.loading-overlay{z-index:100;color:#555;background:#ffffffd9;justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;inset:0}
