*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,sans-serif}body{background:#f5f5f5;color:#333}#app{display:flex;flex-direction:column;height:100vh}#toolbar{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#fff;border-bottom:1px solid #ddd;box-shadow:0 1px 3px #0000000d}#toolbar select{padding:6px 10px;border-radius:6px;border:1px solid #ccc;background:#fff;cursor:pointer}.layout{display:flex;height:100vh}#sidebar{width:300px;border-right:1px solid #ddd;padding:10px;background:#f9f9f9;overflow-y:auto}.plugin-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.plugin-item{padding:8px 10px;margin-top:8px;background:#fff;border:1px solid #ccc;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:6px;transition:background .2s,transform .2s}.plugin-item:hover{background:#f0f8ff}.plugin-item:active{cursor:grabbing}.main-content{display:flex;flex:1;overflow:hidden;gap:16px;padding:16px}#editor{flex:2;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;background:#fefefe;border:1px solid #ddd;box-shadow:0 1px 4px #0000000d}.editor-section{border:1px solid #ddd;border-radius:6px;padding:12px;background:#fafafa;cursor:pointer;transition:background .2s,border-color .2s,transform .2s;min-height:50px}.editor-section:hover{background:#f0f8ff;border-color:#a0c4ff}.editor-blocks{margin-top:8px;display:flex;flex-direction:column;gap:8px}.editor-block{border:1px dashed #bbb;border-radius:4px;padding:6px 8px;background:#fff;cursor:pointer;transition:background .2s,border-color .2s,transform .2s;min-height:40px}.editor-block:hover{background:#f9f9f9;border-color:#90e0ef}.editor-section.dragging,.editor-block.dragging{opacity:.5;border-color:#0070f3;background:#e6f0ff}.editor-section.placeholder,.editor-block.placeholder{border:2px dashed #0070f3;background:#f0f8ff}#settings-panel{flex:1;padding:10px;overflow-y:auto;background:#fff;border-left:1px solid #ddd;box-shadow:0 1px 4px #0000000d}.editor-settings-panel{display:flex;flex-direction:column;gap:12px}.editor-settings-field{display:flex;flex-direction:column;gap:4px}.editor-settings-field label{font-weight:600;font-size:14px}.editor-settings-field input,.editor-settings-field select{padding:6px 8px;border:1px solid #ccc;border-radius:6px;font-size:14px}.editor-settings-field input[type=checkbox]{width:auto}.btn{padding:8px 16px;border:1px solid transparent;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease-in-out;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;-webkit-user-select:none;user-select:none;outline:none}.btn:active{transform:translateY(1px)}.btn:focus{box-shadow:0 0 0 3px #007bff66}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:#007bff;color:#fff;border-color:#007bff}.btn-primary:hover:not(:disabled){background-color:#0069d9;border-color:#0062cc}.btn-secondary{background-color:#6c757d;color:#fff;border-color:#6c757d}.btn-secondary:hover:not(:disabled){background-color:#5a6268;border-color:#545b62}.btn-tertiary{background-color:#495057;color:#fff;border-color:#495057}.btn-tertiary:hover:not(:disabled){background-color:#343a40;border-color:#343a40}.btn-primary,.btn-secondary,.btn-tertiary{box-shadow:0 2px 4px #0000001a}.design-mode a,.design-mode button,.design-mode input,.design-mode textarea,.design-mode select{pointer-events:none}#toolbar{padding:8px;background:#f0f0f0;border-bottom:1px solid #ccc;display:flex;gap:8px}#toolbar button{padding:4px 12px;cursor:pointer}.modal-container{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8f8f8;border-bottom:1px solid #ddd;font-weight:600}.modal-actions{display:flex;gap:8px}.modal-header button{padding:6px 12px;border:1px solid #ccc;background:#fff;cursor:pointer;border-radius:4px;transition:.2s ease}.modal-header button:hover{background:#f0f0f0}.modal-body{flex:1;padding:16px;overflow-y:auto}.modal-body pre{margin:0;font-family:monospace;font-size:14px;white-space:pre-wrap;word-break:break-word}.json-key{color:#1e88e5}.json-string{color:#43a047}.json-number{color:#8e24aa}.json-boolean{color:#fb8c00}.json-null{color:#e53935}.json-modal{counter-reset:line;font-family:monospace;white-space:pre}.json-line{display:block}.line-number{display:inline-block;width:2em;-webkit-user-select:none;user-select:none;opacity:.5}
