.header{height:56px;background:var(--bg-toolbar);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:12px;flex-shrink:0;z-index:100}.header-left{display:flex;align-items:center;gap:12px}.header-logo{font-size:18px;font-weight:700;color:var(--color-primary);letter-spacing:-.5px}.panel-name-selector{display:flex;align-items:center;gap:4px;padding:6px 10px;background:var(--bg-card);border-radius:var(--radius-btn);font-size:13px;cursor:pointer;transition:background .2s}.panel-name-selector:hover{background:var(--border-color)}.header-center,.header-right{display:flex;align-items:center;gap:8px}.header-toggle-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-btn);color:var(--text-secondary);transition:all .2s}.header-toggle-btn:hover{background:var(--bg-card);color:var(--text-primary)}.user-menu-wrapper{position:relative}.user-avatar-btn{width:34px;height:34px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .2s}.user-avatar-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.user-dropdown{position:absolute;top:calc(100% + 6px);right:0;background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius-card);min-width:160px;padding:6px;box-shadow:0 8px 24px #0006;z-index:200;animation:slideUp .15s ease}.user-dropdown button{width:100%;text-align:left;padding:8px 12px;border-radius:var(--radius-btn);font-size:13px;color:var(--text-primary);transition:background .15s}.user-dropdown button:hover{background:var(--bg-card)}.user-dropdown hr{border:none;border-top:1px solid var(--border-color);margin:4px 0}.panel-name-selector{position:relative}.panel-switcher-dropdown{position:absolute;top:calc(100% + 6px);left:0;background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:var(--radius-card);min-width:200px;max-height:300px;overflow-y:auto;padding:4px;box-shadow:0 8px 24px #0006;z-index:200;animation:slideUp .15s ease}.ps-item{width:100%;text-align:left;padding:8px 10px;border-radius:var(--radius-btn);font-size:13px;color:var(--text-primary);display:flex;align-items:center;justify-content:space-between;transition:background .15s;cursor:pointer}.ps-item:hover{background:var(--bg-card)}.ps-item-active{color:var(--color-primary);background:#3b82f614}.ps-check{opacity:.7}.ps-action{color:var(--text-muted);font-size:12px}.ps-divider{border:none;border-top:1px solid var(--border-color);margin:4px 0}.save-toast{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:#22c55e26;color:#22c55e;border-radius:20px;font-size:11px;font-weight:500;animation:fadeInUp .2s ease}.component-library{width:280px;min-width:280px;background:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;transition:width .25s ease,min-width .25s ease;flex-shrink:0}.component-library-collapsed{width:0;min-width:0;border-right:none;overflow:hidden}.cl-search{position:relative;margin:12px}.cl-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-secondary)}.cl-search input{width:100%;padding:8px 10px 8px 32px;font-size:13px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-btn);color:var(--text-primary)}.cl-search input::placeholder{color:var(--text-secondary)}.cl-section{padding:0 12px 12px}.cl-section-header{width:100%;display:flex;align-items:center;gap:4px;padding:8px 4px;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;transition:color .15s}.cl-section-header:hover{color:var(--text-primary)}.cl-grid{display:flex;flex-direction:column;gap:8px;margin-top:4px}.cl-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-card);cursor:grab;transition:all .2s ease;-webkit-user-select:none;user-select:none}.cl-item:hover{border-color:var(--color-primary);background:#3b82f614}.cl-item:active{cursor:grabbing;opacity:.7;transform:scale(.98)}.cl-item-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#3b82f61a;border-radius:6px;color:var(--color-primary);flex-shrink:0}.cl-item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.cl-item-label{font-size:13px;font-weight:500;color:var(--text-primary)}.cl-item-desc{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-wrapper{flex:1;display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden;background:#0a0b10;position:relative}.canvas-area{min-width:320px;min-height:180px;position:absolute;border-radius:8px;overflow:hidden;box-shadow:0 4px 32px #00000080,inset 0 0 0 1px var(--border-color);transition:background-color .3s ease;background-image:radial-gradient(circle,var(--border-color) 1px,transparent 1px);background-size:20px 20px}.zoom-toolbar{position:absolute;bottom:12px;right:12px;z-index:50;display:flex;align-items:center;gap:4px;padding:4px 8px;background:#0f1117d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-color);border-radius:8px}.zoom-toolbar button{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:5px;color:var(--text-secondary);border:none;background:transparent;cursor:pointer;transition:all .15s}.zoom-toolbar button:hover:not(:disabled){background:#ffffff14;color:var(--text-primary)}.zoom-toolbar button:disabled{opacity:.3;cursor:not-allowed}.zoom-value{font-size:11px;font-weight:600;color:var(--text-primary);min-width:42px;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 4px;border-radius:4px;transition:background .15s}.zoom-value:hover{background:#ffffff14}.zoom-reset{margin-left:2px;border-left:1px solid var(--border-color);padding-left:6px!important}.toolbar-sep{width:1px;height:18px;background:var(--border-color);margin:0 6px;flex-shrink:0}.size-control{display:flex;align-items:center;gap:2px;font-size:11px;white-space:nowrap}.size-display{color:var(--text-secondary);cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .15s;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.size-display:hover{background:#ffffff14;color:var(--text-primary)}.size-btn-auto{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s;padding:0}.size-btn-auto:hover{color:var(--text-primary);background:#ffffff14}.canvas-resize-e,.canvas-resize-s,.canvas-resize-w,.canvas-resize-n,.canvas-resize-se,.canvas-resize-sw,.canvas-resize-ne,.canvas-resize-nw{position:absolute;z-index:30}.canvas-resize-e{right:0;top:0;bottom:0;width:8px;cursor:e-resize}.canvas-resize-w{left:0;top:0;bottom:0;width:8px;cursor:w-resize}.canvas-resize-s{left:0;right:0;bottom:0;height:8px;cursor:s-resize}.canvas-resize-n{left:0;right:0;top:0;height:8px;cursor:n-resize}.canvas-resize-se{right:0;bottom:0;width:20px;height:20px;cursor:se-resize}.canvas-resize-sw{left:0;bottom:0;width:20px;height:20px;cursor:sw-resize}.canvas-resize-ne{right:0;top:0;width:20px;height:20px;cursor:ne-resize}.canvas-resize-nw{left:0;top:0;width:20px;height:20px;cursor:nw-resize}.canvas-resize-e:hover,.canvas-resize-s:hover,.canvas-resize-w:hover,.canvas-resize-n:hover,.canvas-resize-se:hover,.canvas-resize-sw:hover,.canvas-resize-ne:hover,.canvas-resize-nw:hover{background:#3b82f614}.canvas-resize-se:after,.canvas-resize-sw:after,.canvas-resize-ne:after,.canvas-resize-nw:after{content:"";position:absolute;width:8px;height:8px;border-radius:0 0 2px;pointer-events:none}.canvas-resize-se:after{right:4px;bottom:4px;border-right:2px solid rgba(255,255,255,.3);border-bottom:2px solid rgba(255,255,255,.3)}.canvas-resize-sw:after{left:4px;bottom:4px;border-left:2px solid rgba(255,255,255,.3);border-bottom:2px solid rgba(255,255,255,.3);border-radius:0 0 0 2px}.canvas-resize-ne:after{right:4px;top:4px;border-right:2px solid rgba(255,255,255,.3);border-top:2px solid rgba(255,255,255,.3);border-radius:0 2px 0 0}.canvas-resize-nw:after{left:4px;top:4px;border-left:2px solid rgba(255,255,255,.3);border-top:2px solid rgba(255,255,255,.3);border-radius:2px 0 0}.canvas-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary)}.canvas-empty-icon{font-size:48px;opacity:.5}.canvas-empty p{font-size:18px;color:var(--text-primary);opacity:.7}.canvas-empty span{font-size:13px;opacity:.5}.canvas-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(24,1fr);grid-auto-rows:30px;gap:8px;padding:12px}.canvas-component{position:relative;background:var(--bg-card);border:2px solid transparent;border-radius:var(--radius-card);overflow:hidden;cursor:grab;transition:border-color .15s,box-shadow .15s,opacity .15s;z-index:1}.canvas-component:hover{border-color:#3b82f64d}.canvas-component.selected{border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f64d;animation:pulse-glow 2s infinite;z-index:10}.canvas-component.dragging{opacity:.7;cursor:grabbing;z-index:100;box-shadow:0 8px 32px #0006;transition:none}.canvas-component.locked{cursor:not-allowed;opacity:.85}.comp-header{height:28px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;background:transparent;border-bottom:1px solid rgba(255,255,255,.05);-webkit-user-select:none;user-select:none}.comp-title{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text;flex:1;min-width:0}.comp-title-placeholder{color:var(--text-muted);font-style:italic;font-weight:400}.comp-title:hover{color:#60a5fa}.comp-type-badge{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comp-actions{display:none;gap:2px}.canvas-component:hover .comp-actions,.canvas-component.selected .comp-actions{display:flex}.comp-actions button{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:4px;color:var(--text-secondary);transition:all .15s}.comp-actions button:hover{background:#ffffff14;color:var(--text-primary)}.comp-actions button.danger:hover{background:#ef444426;color:var(--color-danger)}.comp-body{width:100%;height:calc(100% - 28px);overflow:hidden;position:relative}.comp-body-full{width:100%;height:100%;overflow:hidden;position:relative}.resize-handle{position:absolute;width:12px;height:12px;z-index:20}.resize-se{right:-1px;bottom:-1px;cursor:se-resize}.resize-sw{left:-1px;bottom:-1px;cursor:sw-resize}.resize-ne{right:-1px;top:-1px;cursor:ne-resize}.resize-nw{left:-1px;top:-1px;cursor:nw-resize}.resize-handle:after{content:"";position:absolute;width:6px;height:6px;background:var(--color-primary);border-radius:50%;right:2px;bottom:2px}.resize-sw:after{right:auto;left:2px;bottom:2px}.resize-ne:after{right:2px;bottom:auto;top:2px}.resize-nw:after{right:auto;left:2px;bottom:auto;top:2px}.maximized-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;flex-direction:column;background:var(--bg-card);border-radius:var(--radius-card);overflow:hidden;animation:maximize-in .2s ease-out}@keyframes maximize-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.maximized-header{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.maximized-header .comp-type-badge{font-size:12px;font-weight:600;color:var(--text-primary)}.maximized-body{flex:1;overflow:hidden}.property-panel{width:320px;min-width:320px;background:var(--bg-sidebar);border-left:1px solid var(--border-color);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;transition:width .25s ease,min-width .25s ease;flex-shrink:0}.property-panel-collapsed{width:0;min-width:0;border-left:none;overflow:hidden}.pp-title{display:flex;align-items:center;gap:8px;padding:14px 16px;font-size:14px;font-weight:600;border-bottom:1px solid var(--border-color);flex-shrink:0}.pp-tabs{display:flex;border-bottom:1px solid var(--border-color);flex-shrink:0}.pp-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:10px 8px;font-size:12px;color:var(--text-secondary);border-bottom:2px solid transparent;transition:all .15s}.pp-tab:hover{color:var(--text-primary);background:#ffffff08}.pp-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.pp-body{padding:16px;display:flex;flex-direction:column;gap:14px}.pp-field>span:first-child{font-size:12px;color:var(--text-secondary);font-weight:500}.pp-field input[type=text],.pp-field input[type=number],.pp-field select{width:100%;padding:8px 10px;font-size:13px}.pp-field input[type=range]{width:100%;accent-color:var(--color-primary)}.pp-field input[type=color]{width:40px;height:32px;padding:2px;cursor:pointer;border-radius:var(--radius-btn)}.pp-field input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);align-self:flex-start}.pp-field-row{display:flex;gap:16px}.pp-switch{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:default;flex:1}.switch-track{width:34px;height:18px;border-radius:9px;background:#ffffff1a;padding:2px;cursor:pointer;transition:background .2s;margin-left:auto}.switch-track.active{background:var(--color-primary)}.switch-thumb{width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.switch-track.active .switch-thumb{transform:translate(16px)}.theme-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.theme-swatch{width:100%;aspect-ratio:1;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:all .15s;display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px}.theme-swatch-label{font-size:12px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8);white-space:nowrap}.theme-swatch:hover{transform:scale(1.05);border-color:#ffffff4d}.theme-swatch.active{border-color:#3b82f6;box-shadow:0 0 8px #3b82f666}.ratio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.ratio-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;border-radius:6px;border:2px solid var(--border-color);background:transparent;cursor:pointer;transition:all .15s}.ratio-btn:hover{border-color:var(--color-primary);background:#6366f114}.ratio-btn.active{border-color:var(--color-primary);background:#6366f126}.ratio-preview{width:28px;height:20px;background:var(--text-secondary);opacity:.5;border-radius:3px;transition:all .15s}.ratio-btn.active .ratio-preview{background:var(--color-primary);opacity:1}.ratio-btn[data-value=auto] .ratio-preview,.ratio-btn:nth-child(1) .ratio-preview{width:16px;height:16px;border-radius:50%;background:var(--text-secondary);opacity:.5}.ratio-btn.active:nth-child(1) .ratio-preview{background:var(--color-primary);opacity:1}.ratio-label{font-size:10px;color:var(--text-secondary);font-weight:500}.bottom-toolbar{height:48px;background:var(--bg-toolbar);border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;gap:20px;padding:0 24px;flex-shrink:0}.bt-controls{display:flex;align-items:center;gap:6px}.bt-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-secondary);transition:all .15s}.bt-btn:hover{background:var(--bg-card);color:var(--text-primary)}.bt-play{width:42px;height:42px;background:var(--color-primary);color:#fff}.bt-play:hover{background:#2563eb;transform:scale(1.05)}.bt-play.playing{background:var(--color-danger)}.bt-speed-selector select{padding:5px 10px;font-size:12px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-btn);color:var(--text-primary);cursor:pointer}.bt-progress-bar{width:240px;height:4px;background:var(--bg-card);border-radius:2px;overflow:hidden;cursor:pointer}.bt-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#8B5CF6);border-radius:2px;transition:width .3s linear}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-header h3{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}.modal-header button{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-btn);color:var(--text-secondary);transition:all .15s}.modal-header button:hover{background:var(--bg-card);color:var(--text-primary)}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-color)}.export-body{display:flex;flex-direction:column;gap:16px}.radio-group{display:flex;flex-direction:column;gap:8px}.radio-option{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-btn);cursor:pointer;transition:all .15s;font-size:13px}.radio-option:hover{border-color:#3b82f64d}.radio-option.active{border-color:var(--color-primary);background:#3b82f60f}.radio-option input{accent-color:var(--color-primary)}.export-info{display:flex;justify-content:space-between;padding:8px 0;font-size:13px;color:var(--text-secondary)}.watermark-preview{display:flex;justify-content:space-between;align-items:center}.watermark-box{padding:8px 16px;background:#ffffff08;border-radius:var(--radius-btn);font-size:11px;color:var(--text-secondary);letter-spacing:1px}.agreement-check{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}.agreement-check input{margin-top:2px;accent-color:var(--color-primary)}.export-progress-bar{height:4px;background:var(--bg-card);border-radius:2px;overflow:hidden;margin-top:12px}.export-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#8B5CF6);border-radius:2px;transition:width .3s ease}.export-error-msg{display:flex;align-items:center;gap:6px;padding:8px 12px;margin-top:8px;font-size:12px;color:#ef4444;background:#fef2f2;border-radius:6px;border:1px solid #fecaca}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.new-panel-body{display:flex;flex-direction:column;gap:14px}.template-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.template-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-card);color:var(--text-secondary);cursor:pointer;transition:all .15s}.template-card strong{font-size:13px;color:var(--text-primary)}.template-card span{font-size:11px;text-align:center}.template-card:hover{border-color:#3b82f64d}.template-card.active{border-color:var(--color-primary);background:#3b82f614;color:var(--color-primary)}.ds-modal{max-width:700px}.ds-body{display:flex;flex-direction:column;gap:14px;max-height:400px;overflow-y:auto}.ds-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px;color:var(--text-secondary)}.ds-empty p{font-weight:500;color:var(--text-primary)}.ds-empty span{font-size:12px}.ds-table{width:100%;border-collapse:collapse;font-size:13px}.ds-table th{text-align:left;padding:8px 10px;background:var(--bg-card);color:var(--text-secondary);font-size:12px;font-weight:500;border-bottom:1px solid var(--border-color)}.ds-table td{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.04)}.ds-actions{display:flex;gap:4px}.ds-actions button{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:4px;color:var(--text-secondary);transition:all .15s}.ds-actions button:hover{background:var(--bg-card);color:var(--text-primary)}.ds-actions button.danger:hover{background:#ef44441a;color:var(--color-danger)}.ds-preview{padding:12px;background:var(--bg-card);border-radius:var(--radius-btn);overflow-x:auto}.ds-preview strong{font-size:12px;color:var(--text-secondary);display:block;margin-bottom:8px}.ds-preview pre{font-family:SF Mono,Consolas,monospace;font-size:11px;color:var(--text-secondary);white-space:pre-wrap;max-height:200px;overflow-y:auto}.ae-modal{min-width:680px;max-width:900px}.ae-form-modal{min-width:520px;max-width:580px}.ae-body{display:flex;flex-direction:column;gap:14px;max-height:480px;overflow-y:auto}.ae-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;color:var(--text-secondary)}.ae-empty p{font-weight:500;color:var(--text-primary);margin-top:4px}.ae-empty span{font-size:12px}.ae-table{width:100%;border-collapse:collapse;font-size:13px}.ae-table th{text-align:left;padding:10px 12px;background:var(--bg-card);color:var(--text-secondary);font-size:12px;font-weight:500;border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:1}.ae-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}.ae-name-cell{display:flex;flex-direction:column;gap:2px;min-width:120px}.ae-name-cell strong{color:var(--text-primary);font-weight:500}.ae-name-cell small{color:var(--text-secondary);font-size:11px}.ae-time-cell{display:flex;flex-wrap:wrap;gap:4px}.ae-time-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:10px;font-size:11px;color:var(--color-primary);font-family:SF Mono,Consolas,monospace}.ae-toggle-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:12px;font-size:11px;background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);transition:all .15s;cursor:pointer}.ae-toggle-btn:hover{filter:brightness(1.2)}.ae-toggle-btn.active{background:#10b9811a;border-color:#10b9814d;color:var(--color-success)}.ae-toggle-btn:disabled{opacity:.6;cursor:not-allowed}.ae-status-cell{display:flex;align-items:center;gap:5px;flex-direction:column;min-width:100px}.ae-status-cell small{color:var(--text-secondary);font-size:10px}.ae-actions{display:flex;gap:4px}.ae-actions button{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;color:var(--text-secondary);transition:all .15s}.ae-actions button:hover{background:var(--bg-card);color:var(--text-primary)}.ae-actions button.danger:hover{background:#ef44441a;color:var(--color-danger)}.ae-actions button:disabled{opacity:.5;cursor:not-allowed}.ae-form-body{display:flex;flex-direction:column;gap:14px}.pp-field{display:flex;flex-direction:column;gap:6px}.pp-field>span{font-size:12px;color:var(--text-secondary);font-weight:500}.pp-field input,.pp-field select{width:100%}.ae-error{color:var(--color-danger);font-size:11px}.ae-times-list{display:flex;flex-direction:column;gap:8px}.ae-time-row{display:flex;align-items:center;gap:8px}.ae-time-row input[type=time]{flex:1;max-width:160px;font-family:SF Mono,Consolas,monospace}.ae-remove-time{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;color:var(--text-secondary);transition:all .15s}.ae-remove-time:hover{background:#ef44441a;color:var(--color-danger)}.ae-add-time{align-self:flex-start;font-size:12px;padding:4px 10px}.ae-param-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.panel-manager-modal{width:520px;max-height:70vh;background:var(--bg-secondary);border-radius:12px;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.pm-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06)}.pm-header h3{margin:0;font-size:15px;font-weight:600;color:var(--text-primary);display:flex;align-items:center}.pm-close-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:6px;transition:all .15s}.pm-close-btn:hover{color:var(--text-primary);background:#ffffff14}.pm-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px}.pm-count{font-size:12px;color:var(--text-muted)}.pm-list{overflow-y:auto;padding:4px 12px 12px}.pm-item{display:flex;align-items:center;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s;position:relative;gap:8px}.pm-item:hover{background:#ffffff0d}.pm-item-active{background:#3b82f61a;border:1px solid rgba(59,130,246,.25)}.pm-item-info{flex:1;min-width:0}.pm-item-name{font-size:13px;font-weight:500;color:var(--text-primary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pm-item-meta{font-size:11px;color:var(--text-muted);margin-top:2px;display:block}.pm-item-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.pm-item:hover .pm-item-actions{opacity:1}.pm-action-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:5px;border-radius:4px;transition:all .15s;display:flex;align-items:center;justify-content:center}.pm-action-btn:hover{color:var(--text-primary);background:#ffffff14}.pm-action-btn.pm-danger:hover{color:#ef4444;background:#ef44441a}.pm-action-btn.pm-confirm:hover{color:#22c55e;background:#22c55e1a}.pm-action-btn:disabled{opacity:.3;cursor:not-allowed}.pm-current-badge{position:absolute;top:-1px;right:-1px;background:#3b82f6;color:#fff;font-size:9px;padding:1px 6px;border-radius:0 8px 0 6px;font-weight:600;letter-spacing:.5px}.pm-rename-input{background:#0000004d;border:1px solid rgba(59,130,246,.5);border-radius:4px;color:var(--text-primary);font-size:13px;padding:2px 6px;outline:none;width:100%;font-family:inherit}.app-layout{width:100%;height:100vh}.chart-renderer{width:100%;height:100%}.metric-card{display:flex;align-items:baseline;justify-content:center;gap:4px;height:100%;padding:16px}.metric-prefix,.metric-suffix{font-size:16px;color:var(--text-secondary);font-weight:500}.metric-value{font-weight:700;font-family:SF Mono,Consolas,monospace;line-height:1.2;transition:color .3s}.text-card{width:100%;height:100%;font-size:14px;color:var(--text-primary);overflow:auto}.image-card{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.image-placeholder{flex-direction:column;gap:8px;color:var(--text-secondary);cursor:pointer;border:2px dashed var(--border-color);border-radius:var(--radius-card);padding:20px;transition:all .15s}.image-placeholder:hover{border-color:var(--color-primary);color:var(--color-primary)}
