.editor-loading{justify-content:center;align-items:center;gap:var(--space-4);height:100vh;color:var(--color-text-secondary);flex-direction:column;display:flex}.editor-loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.editor-shell{background:var(--color-bg);flex-direction:column;height:100vh;display:flex;overflow:hidden}.editor-toolbar{height:var(--editor-toolbar-height);padding:0 var(--space-4);border-bottom:1px solid var(--color-border);z-index:var(--z-sticky);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.toolbar-left,.toolbar-center,.toolbar-right{align-items:center;gap:var(--space-2);display:flex}.toolbar-divider{background:var(--color-border);width:1px;height:24px;margin:0 var(--space-2)}.device-toggles{background:var(--color-surface-2);border-radius:var(--radius-md);border:1px solid var(--color-border);align-items:center;gap:2px;padding:3px;display:flex}.device-active{background:var(--color-accent-subtle)!important;color:var(--color-accent)!important}.save-status{font-size:var(--font-size-xs);color:var(--color-success);font-weight:600;animation:.3s fadeIn}.editor-body{flex:1;display:flex;overflow:hidden}.editor-sidebar{width:var(--editor-sidebar-width);border-right:1px solid var(--color-border);padding:var(--space-4);gap:var(--space-2);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar-title{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-2) var(--space-2);font-weight:700}.sidebar-divider{background:var(--color-border);height:1px;margin:var(--space-3) 0}.element-palette{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.palette-item{padding:var(--space-3) var(--space-2);border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border);transition:all var(--transition-fast);cursor:pointer;flex-direction:column;align-items:center;gap:4px;display:flex}.palette-item:hover{background:var(--color-bg-hover);border-color:var(--color-accent);transform:translateY(-1px)}.palette-item:disabled{opacity:.4;cursor:not-allowed;transform:none}.palette-icon{color:var(--color-text-secondary);font-size:14px;font-weight:800;line-height:1}.palette-label{color:var(--color-text-tertiary);font-size:10px;font-weight:600}.add-section-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-accent-subtle);color:var(--color-accent);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);border:1px dashed #cd000040;font-weight:600;display:flex}.add-section-btn:hover{border-color:var(--color-accent);background:#cd00001a}.section-list{gap:var(--space-1);margin-top:var(--space-2);flex-direction:column;display:flex}.section-list-item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);color:var(--color-text-secondary);justify-content:space-between;align-items:center;display:flex}.section-list-item:hover{background:var(--color-bg-hover)}.section-list-item.active{background:var(--color-accent-subtle);color:var(--color-accent)}.section-list-name{font-weight:600}.section-list-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.editor-canvas{background:var(--color-bg-hover);padding:var(--space-6);flex:1;justify-content:center;align-items:flex-start;display:flex;overflow:auto}.canvas-inner{border-radius:var(--radius-lg);width:100%;max-width:100%;min-height:100%;transition:max-width var(--transition-base);box-shadow:var(--shadow-lg);position:relative}.canvas-inner.device-desktop{max-width:100%}.canvas-inner.device-tablet{max-width:768px}.canvas-inner.device-mobile{max-width:375px}.canvas-empty{justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;min-height:400px;animation:.5s fadeIn;display:flex}.canvas-empty-icon{color:var(--color-accent);opacity:.5;border:2px dashed var(--color-accent);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:2.5rem;font-weight:300;display:flex}.canvas-empty h3{font-size:var(--font-size-xl);color:var(--color-text);font-weight:700}.canvas-empty p{font-size:var(--font-size-base);color:var(--color-text-tertiary)}.canvas-section{transition:outline var(--transition-fast);cursor:default;outline:2px solid #0000;position:relative}.canvas-section:hover{outline-color:#cd00001a}.canvas-section.section-selected{outline-color:#cd00004d}.section-actions{z-index:10;gap:4px;animation:.2s fadeIn;display:flex;position:absolute;top:8px;right:8px}.section-action-btn{border-radius:var(--radius-sm);background:var(--color-bg-card);border:1px solid var(--color-border);width:28px;height:28px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;font-size:12px;display:flex}.section-action-btn:hover{background:var(--color-surface-2);color:var(--color-text)}.section-action-btn.danger:hover{color:var(--color-error);background:#cd00000f;border-color:#cd000033}.section-action-btn:disabled{opacity:.3;cursor:not-allowed}.canvas-element{cursor:pointer;outline-offset:4px;transition:outline var(--transition-fast);border-radius:4px;outline:2px solid #0000;position:relative}.canvas-element:hover{outline-color:#cd000026}.canvas-element.element-selected{outline-color:var(--color-accent)}.element-actions{z-index:10;gap:2px;animation:.15s fadeIn;display:flex;position:absolute;top:-32px;right:0}.el-action-btn{background:var(--color-accent);color:#fff;cursor:pointer;width:24px;height:24px;transition:all var(--transition-fast);border:none;border-radius:4px;justify-content:center;align-items:center;font-size:10px;display:flex}.el-action-btn:hover{background:var(--color-accent-hover)}.el-action-btn.danger{background:var(--color-error)}.el-action-btn.danger:hover{background:#b00000}.canvas-element [contenteditable=true]{outline:2px solid var(--color-accent);outline-offset:4px;cursor:text;border-radius:4px}.editor-properties{width:var(--editor-properties-width);border-left:1px solid var(--color-border);flex-shrink:0;overflow-y:auto}.properties-content{padding:var(--space-4)}.props-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.props-title{font-size:var(--font-size-md);color:var(--color-text);font-weight:700}.props-type-badge{border-radius:var(--radius-full);background:var(--color-accent-subtle);color:var(--color-accent);text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;font-size:10px;font-weight:600}.props-divider{background:var(--color-border);height:1px;margin:var(--space-4) 0}.prop-group{margin-bottom:var(--space-4)}.prop-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.04em;font-weight:600;display:block}.prop-input{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm);transition:border-color var(--transition-fast)}.prop-input:focus{border-color:var(--color-accent);outline:none}.prop-input.small{width:80px}.prop-textarea{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm);resize:vertical;min-height:60px;transition:border-color var(--transition-fast)}.prop-textarea:focus{border-color:var(--color-accent);outline:none}.prop-select{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;appearance:auto}.prop-select:focus{border-color:var(--color-accent);outline:none}.prop-row{align-items:center;gap:var(--space-2);display:flex}.prop-unit{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-weight:500}.prop-row-btns{gap:4px;display:flex}.prop-align-btn{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);width:36px;height:32px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:14px;display:flex}.prop-align-btn:hover{background:var(--color-surface-2)}.prop-align-btn.active{background:var(--color-accent-subtle);border-color:var(--color-accent);color:var(--color-accent)}.prop-color-row{align-items:center;gap:var(--space-2);display:flex}.prop-color{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:0 0;width:36px;height:32px;padding:2px}.prop-color::-webkit-color-swatch-wrapper{padding:0}.prop-color::-webkit-color-swatch{border:none;border-radius:4px}.props-hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-align:center;padding:var(--space-4);line-height:1.5}.preview-mode{background:var(--color-bg);flex-direction:column;height:100vh;display:flex}.preview-toolbar{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.preview-label{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-weight:600}.preview-container{flex:1;overflow:hidden}.preview-iframe{border:none;width:100%;height:100%}@media (max-width:900px){.editor-sidebar{width:200px}.editor-properties{width:220px}}@media (max-width:700px){.editor-sidebar,.editor-properties,.toolbar-center{display:none}}
