:root{--bg-primary:#0a0e27;--bg-secondary:#151933;--bg-tertiary:#1e2139;--bg-hover:#252a45;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-primary:#6366f1;--accent-secondary:#8b5cf6;--accent-hover:#4f46e5;--accent-glow:rgba(99,102,241,0.3);--success:#10b981;--warning:#f59e0b;--error:#ef4444;--border-color:rgba(148,163,184,0.12);--shadow-sm:0 1px 3px rgba(0,0,0,0.3);--shadow-md:0 4px 12px rgba(0,0,0,0.4);--shadow-lg:0 10px 30px rgba(0,0,0,0.5);--shadow-xl:0 20px 50px rgba(0,0,0,0.6);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}body.light-mode{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-hover:#e2e8f0;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;--accent-primary:#6366f1;--accent-secondary:#8b5cf6;--accent-hover:#4f46e5;--accent-glow:rgba(99,102,241,0.2);--border-color:rgba(15,23,42,0.08);--shadow-sm:0 1px 3px rgba(0,0,0,0.08);--shadow-md:0 4px 12px rgba(0,0,0,0.1);--shadow-lg:0 10px 30px rgba(0,0,0,0.12);--shadow-xl:0 20px 50px rgba(0,0,0,0.15)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Helvetica','Arial',sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow:hidden;transition:var(--transition)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px;transition:var(--transition)}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.sequence-container{display:flex;flex-direction:column}#sequenceComponent{display:flex;flex-direction:column;height:100%}#sequenceComponent.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999}#sequenceComponent.fullscreen .top-menu{width:100%;border-radius:0}#sequenceComponent.fullscreen .left-panel{position:fixed;top:58px;left:16px;width:220px;height:auto;max-height:calc(100vh - 78px);z-index:10000;box-shadow:var(--shadow-xl);border:2px solid rgba(102,126,234,0.3);animation:slideInLeft 0.3s ease}#sequenceComponent.fullscreen .canvas-container{margin-left:252px}@keyframes slideInLeft{from{transform:translateX(-100px);opacity:0}to{transform:translateX(0);opacity:1}}.top-menu{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:linear-gradient(135deg,#667eea 0,#764ba2 100%);gap:10px;box-shadow:0 2px 12px rgba(0,0,0,0.15);position:relative;z-index:100}.menu-section{display:flex;align-items:center;gap:6px}.menu-section-left{flex:0 0 auto}.menu-section-center{flex:0 0 auto}.menu-section-right{flex:0 0 auto;margin-left:auto}.menu-divider{width:1px;height:20px;background:rgba(255,255,255,0.25);margin:0 3px}.menu-group{display:flex;gap:3px;align-items:center;padding:2px;border-radius:6px;transition:all 0.3s ease}.menu-group:hover{background:rgba(255,255,255,0.08)}.menu-btn{padding:5px 10px;background:rgba(255,255,255,0.95);border:none;border-radius:6px;cursor:pointer;font-size:11px;font-weight:500;color:#667eea;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,0.08)}.menu-btn:hover{background:#fff;transform:translateY(-1px) scale(1.02);box-shadow:0 4px 12px rgba(0,0,0,0.15)}.menu-btn:active{transform:translateY(0) scale(0.98)}.menu-btn.primary{background:rgba(255,255,255,0.95);color:#667eea;font-weight:600}.menu-btn.secondary{background:rgba(255,255,255,0.15);color:#fff;border:1px solid rgba(255,255,255,0.25)}.menu-btn.secondary:hover{background:rgba(255,255,255,0.25)}.menu-btn.success{background:linear-gradient(135deg,#10b981 0,#059669 100%);color:white;font-weight:600}.menu-btn.success:hover{background:linear-gradient(135deg,#059669 0,#047857 100%)}.menu-btn.info{background:linear-gradient(135deg,#3b82f6 0,#2563eb 100%);color:white;font-weight:600}.menu-btn.info:hover{background:linear-gradient(135deg,#2563eb 0,#1d4ed8 100%)}.menu-btn:disabled{opacity:0.5;cursor:not-allowed;transform:none !important}.menu-btn.small{padding:0 10px;height:26px;line-height:26px;font-size:11px;display:inline-flex;align-items:center;justify-content:center;gap:3px}.menu-btn.zoom-menu-btn{padding:0;width:30px;height:30px;font-size:15px;background:linear-gradient(135deg,#10b981 0,#059669 100%);color:white;font-weight:700;border-radius:8px}.menu-group.zoom-group{gap:3px;background:rgba(16,185,129,0.1);padding:3px;border-radius:8px}.workspace{display:flex;flex:1;overflow:hidden}.left-panel{width:240px;background:linear-gradient(135deg,rgba(102,126,234,0.05) 0,rgba(118,75,162,0.05) 100%);border-right:2px solid rgba(102,126,234,0.2);overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px}.panel-section{background:linear-gradient(135deg,rgba(255,255,255,0.08) 0,rgba(255,255,255,0.03) 100%);border-radius:10px;padding:12px;border:2px solid rgba(102,126,234,0.15);transition:all 0.3s cubic-bezier(0.4,0,0.2,1);box-shadow:0 2px 8px rgba(0,0,0,0.1)}.panel-section:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(102,126,234,0.2)}.panel-section h3{font-size:16px;margin-bottom:1px;color:var(--text-primary);font-weight:700}.panel-section p{font-size:11px;color:var(--text-secondary);margin-bottom:10px}.shape-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.shape-item{padding:10px 6px;background:linear-gradient(135deg,rgba(255,255,255,0.12) 0,rgba(255,255,255,0.05) 100%);border:2px solid rgba(102,126,234,0.2);border-radius:6px;text-align:center;font-size:11px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);box-shadow:0 2px 6px rgba(0,0,0,0.08)}.shape-item:hover{transform:translateY(-2px) scale(1.02);border-color:#667eea;box-shadow:0 6px 20px rgba(102,126,234,0.3);color:#667eea}.shape-item:active{transform:scale(0.98)}.shape-item.active{background:linear-gradient(135deg,rgba(102,126,234,0.25) 0,rgba(118,75,162,0.25) 100%);border-color:#667eea;color:#667eea;box-shadow:0 0 20px rgba(102,126,234,0.4)}.canvas-container{flex:1;position:relative;background:var(--bg-primary);overflow:auto}#sequenceCanvas{display:block;cursor:default;min-width:100%;min-height:100%}#propertyPanel{position:absolute;bottom:100px;right:20px;width:240px;max-height:480px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;backdrop-filter:blur(20px);animation:slideInRight 0.3s ease;z-index:1001}#propertyPanel ~ .zoom-level-widget{bottom:100px;left:20px;right:auto}@keyframes slideInRight{from{transform:translateX(100px);opacity:0}to{transform:translateX(0);opacity:1}}#propertyPanel > div:first-child{padding:8px 10px;background:linear-gradient(135deg,rgba(102,126,234,0.15),rgba(118,75,162,0.15));border-bottom:1px solid var(--border-color);user-select:none}#propertyPanel > div:first-child:hover{background:linear-gradient(135deg,rgba(102,126,234,0.2),rgba(118,75,162,0.2))}#propertyPanelToggleIcon{color:var(--text-secondary);font-weight:bold}.close-btn{background:var(--bg-hover);border:none;color:var(--text-primary);cursor:pointer;width:22px;height:22px;border-radius:4px;transition:var(--transition);font-size:14px}.close-btn:hover{background:var(--accent-primary);color:white;transform:scale(1.1)}#propertyPanelContent{padding:10px;max-height:420px;overflow-y:auto;transition:all 0.3s ease}.property-item{margin-bottom:10px}.property-item label{display:block;margin-bottom:4px;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:0.5px}.property-item input,.property-item textarea,.property-item select{width:100%;padding:6px 8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:11px;transition:var(--transition)}.property-item input:focus,.property-item textarea:focus,.property-item select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.property-item textarea{resize:vertical;min-height:60px}.color-picker-group{display:flex;gap:5px;align-items:center}.color-picker{width:32px;height:32px;border:2px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.color-picker:hover{transform:scale(1.05);border-color:var(--accent-primary)}.color-picker-text{flex:1;font-family:'Courier New',monospace !important}.status-message{position:fixed;top:120px;right:20px;background:var(--accent-primary);color:white;padding:10px 20px;border-radius:24px;font-size:12px;font-weight:500;box-shadow:0 6px 20px var(--accent-glow);z-index:1001;animation:slideIn 0.3s ease}@keyframes slideIn{from{transform:translateX(100px);opacity:0}to{transform:translateX(0);opacity:1}}.zoom-level-widget{position:fixed;bottom:20px;right:20px;z-index:1000}.zoom-display{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,0.95);border:1px solid rgba(16,185,129,0.3);border-radius:18px;padding:6px 14px;cursor:pointer;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);box-shadow:0 3px 14px rgba(0,0,0,0.1)}.zoom-display:hover{background:rgba(16,185,129,0.1);border-color:rgba(16,185,129,0.5);transform:translateY(-1px)}.zoom-icon{font-size:12px}.zoom-value{font-size:12px;font-weight:700;color:#059669;min-width:38px;text-align:center}.zoom-dropdown{position:absolute;bottom:calc(100% + 6px);right:0;background:rgba(255,255,255,0.98);border:1px solid rgba(16,185,129,0.2);border-radius:10px;padding:5px;min-width:120px;box-shadow:0 6px 28px rgba(0,0,0,0.12)}.zoom-dropdown-item{padding:6px 12px;cursor:pointer;border-radius:6px;font-size:11px;transition:var(--transition)}.zoom-dropdown-item:hover{background:rgba(16,185,129,0.1)}.zoom-dropdown-item.active{background:rgba(16,185,129,0.2);font-weight:600}.zoom-dropdown-divider{height:1px;background:var(--border-color);margin:4px 0}.context-menu{position:fixed;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);padding:5px;min-width:160px;z-index:10000;display:none}.context-menu-item{padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);font-size:12px}.context-menu-item:hover{background:var(--accent-primary);color:white}.context-menu-divider{height:1px;background:var(--border-color);margin:5px 0}.modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.7);z-index:10001;align-items:center;justify-content:center}.modal.active{display:flex}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:18px;font-weight:600}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.template-item{padding:16px;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition)}.template-item:hover{transform:translateY(-3px);border-color:var(--accent-primary);box-shadow:0 10px 26px var(--accent-glow)}.template-item h4{font-size:14px;margin-bottom:6px}.template-item p{font-size:11px;color:var(--text-secondary)}.shortcut-list{display:grid;gap:8px}.shortcut-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-tertiary);border-radius:var(--radius-sm);transition:var(--transition)}.shortcut-item:hover{background:var(--bg-hover)}.shortcut-key{background:var(--bg-primary);padding:5px 10px;border-radius:var(--radius-sm);font-family:'Courier New',monospace;font-size:11px;border:1px solid var(--border-color);color:var(--accent-primary)}.sequence-toast{position:fixed;top:70px;right:20px;background:linear-gradient(135deg,#667eea 0,#764ba2 100%);color:white;padding:10px 20px;border-radius:20px;font-size:12px;font-weight:500;box-shadow:0 8px 24px rgba(102,126,234,0.4);z-index:10002;opacity:0;transform:translateX(100px);transition:all 0.3s cubic-bezier(0.4,0,0.2,1);pointer-events:none}.sequence-toast.show{opacity:1;transform:translateX(0)}